Improve `_exec` and its test coverage

Testing undo/redo on these will just be a matter of adding `testUndoRedo: true` here.

This way, testing undo/redo is integrated within the testing of each manipulation.