another try at pan n zoom