task,project class refactored