why not do this inside `_change_touch_mode` itself?