the test cases pass now at least