Reimplement pullThrough in a more undo-friendly fashion - only one undo to reverse...