Ah wait. Actually... Since `ops.Canvas` depends on `ZoomHelper` which depends on `core.EventNotifier` and also `core.Destroyable`, all these changes are perfectly fine.