added canvas initialization, started implementing vm class