commented code
more comments
handle edge cases