     (connect-subsuming! ret subsuming-sp)
     (summaries/connect! ret (tree-summarizer left-sp) false)
     (connect-and-watch! ret right-stub 
-      #(add-child-sp! ret (make-pair-subproblem subsuming-sp ret left-sp %)))
+      #(set-stub-output! ret (make-pair-subproblem subsuming-sp ret left-sp %)))
     ret))
 
 (defn- make-pair-stub1 [subsuming-sp left-stub right-name right-stub-fn]

                                    (min (subsuming-bound s) (second @state)) s)))   
         Evaluable
         (evaluate! [s]
           (assert (not (= :go @state)))
           (let [ready? (= :ready @state)]
             (if-let [[out-set reward :as op] (if ready? (fs/apply-opt function-set inp-set) @state)]

          (let [ret (make-simple-subproblem stub subsuming-sp out-set false or-summary ri-fn reward)]
            (connect-and-watch! ret subsuming-sp
              (fn [sub-out]
                (connect-and-watch! ret (refine-input sub-out inp-set) #(add-sp-child! ret %))
                (summaries/summary-changed! ret)))  ;; TODO: needed?                       
            ret)
          
          :else 
          (let [ret (make-simple-subproblem stub subsuming-sp out-set false or-summary ri-fn reward)]
            (doseq [child (map #(make-fs-seq-stub inp-set %) (fs/child-seqs function-set inp-set))]
              (connect-and-watch! ret child #(add-sp-child! ret %)))
            ret))))


