revise touch events