recursive touch