added abstract task hander