Better zoom logic