updated add , redo , undo