Changing how Undo/Redo works

also kind of adding it in at the same time