Added Canvas and double-buffering