tried to implement consistent zooming