added touch function