tasks refactoring (extends from abstract Task)