add a new phase for invoking to ensure we can capture bulk state changes for undo/redo