encapsulate mutating code
the visible ranges made far easier to work with