slowly implementing stage, commit and undo logic