added touch events and stuff