added initial zooming and panning functionality