completed task with test cases