@theefer I guess I could move `UndoManager` out of `api` and into `core`, as no-one else will need to use it?