add tests for edge cases