Move controller logic to its own class. Add touch support (includes mouse for desktop)