implemented touch input