almost there, edge cases