improving zoom in/out, keep position