Well...so, looking at this again, I might even go so far as to define a method that tests "isAtEnd" or "isAtMiddle" or something.  In that case, we can use 0 and 1s in the test, and it's likely more descriptive than calling 1 "OFF OFFSET" or something like that.