no-touch controller support + refactoring