todo
Undo-redo: intermediate version