made two versions of Undo::push, updated code to use them