                     (if (= false (get-in bolt-at [:phrasal]))
                       [(do-defaults (assoc-in bolt path bolt-at) model)]
                       (let [comps-map (comp-paths-to-bolts-map bolt-at model (+ 1 depth) max-depth)
-                            comp-paths (keys comps-map)
+                            comp-paths (find-comp-paths bolt)
                             comp-bolts (vals comps-map)]
                         (when (not (some empty? comp-bolts))
                           (mapfn #(do-defaults (assoc-in bolt path %) model)

  (flatten
   (mapfn (fn [bolt]
            (let [comps-map (comp-paths-to-bolts-map bolt model 0 max-total-depth)
                  comp-paths (keys comps-map)
                  comp-bolts (vals comps-map)]
              ;; filter by the following constraint:
              ;; that for every path that points to a complement of a bolt,

              (index-fn spec)
              (flatten (vals
                        (or (:lexicon (:generate model)) (:lexicon model))))))))
  
(defn comp-paths-to-bolts-map
  "return a map between the set of all complements in the given _bolt_,and the lazy sequence of bolts for that spec."
  [bolt model depth max-depth]
