zoom function
clean up a bit and add animation toggle