Add Task class and tests