add zoom control and fix transitions