BTW, calling the offsetSet Method could be faster, than relying on the interface. +1

yes, $this. The goal is to go through offsetSet -1

If the goal is to go through offsetSet, then use offsetSet !!!!