#31 Canvas support

Mid way commit on #31