correctly scaling with touch events