added smooth pinch zoom