all the test cases are working