Undo and redo partially functional