Refactored GUI. Now Uses Canvas and Double Buffering