Abstracting more functions, WIP for separating rendering to screens and input to it's own class.