working on edge cases