touch event improvements