GH278 undo redo command stack