add basic Canvas implementation