Refactored demo mode into own class and added keyboard input processing