Refactoring
Bug fix: parts should be copied
Rename: Canvas -> Context