refactored task to use Task_Base
base class for convenience