improve repeat, restore redo behavior