make BaseTask abstract