Input Abstracted
Graphic interface abstracted
Finished abstracting input and rendering