Session08

I like that you've been thorough in accounting for negative step.  And that you broke out this check into an "internal" helper method.  I would, however, name this method with an initial underscore to indicate that it is part of the internal workings of the class, and not to be used from outside.