Removed reference to ITask and added interfaces for each tasks.
Clean up and refactoring