Added Delegate class. It is used to signal changes to the canvas.+