Updated to support touch events