add more tests for edge cases