added Task/Project/TaskItem using composite pattern