Added mouse and keyboard interaction
Moved contents of draw() to graphic buffer
Added window controller