Added Undo/Redo support