ICanvas: extract interface