#31 merge of basic canvas functionality