moved offsets and wrap-around to NormalizeRingPos)_