added undo and redo actions