-add change undo redo function