Undo framework v2