Wrote more unit tests!
Added minimum bounds checking to level methods.

there was the possibility of returning level 0, which is invalid.