touch-click refactor