Bring in changes to CanvasOutput that were missed in the merge.
Start to re-factor Output to use this.