thought of some edge cases