re-do the corner cases