modified onTouchEvent