complete redo (v2)