User undo redo

Adding functionality for user undo/redo