use at as at and only compute difference when needed (to determine if there is a jump in binary) Easier to understand that way
also tests and have Position module keep all positions (singletons should be at module, not class level)