improving zoom behavior