Merge in canvas refactorizations