moved the edge cases to their own spec