Massive refactoring. Split canvas drawing, application logic and event handling
List technology planned to use