Merging image and canvas - they just share too much responsibility