force offset to be an integer because testing for floats gets tricky
fixed valid() Iterator method
added missing class version static property