refactored zoom to support redrawing of the rulers