Hi,
Well, the undo framework allows you to go back and forth in a controlled fashion. You can have multiple different commands based on your various workflows that can be handled by a single stack. There's a model that you can visualize while developing the feature.