prev acts differently if its the first undo; support subsequent redo, undo