add task scheduler project
add new test case for task scheduler
refactor
add new test with task dependency
refactor the task scheduler to get dependency
add test with multiple task dependencies
add test with in-depth task dependencies
add test with cyclic dependency
amend test expectation
refactor to end cyclic dependency exception