implemented premade task factory