refactor touch modes