most test cases working