Refactored ITask and children.