   (if (and (not (= :fail spec))
            (not (empty? (strip-refs spec))))
     (log/debug (str "lighting-bolt@" depth " spec: " (strip-refs spec))))
-  (log/trace (str "lighting-bolt@" depth " grammar:" (string/join ", " (map #(get-in % [:rule]) grammar))))
+  (if (not parent)
+    (log/warn (str "no parent for lightning-bolt@" depth " with spec: " (strip-refs spec))))
   (let [maxdepth 3 ;; maximum depth of a lightning bolt: H1 -> H2 -> H3 where H3 must be a lexeme, not a phrase.
-        index
-        #?(:clj (if (future? index) @index index))
-        #?(:cljs index)
-        
-        lexicon
-        #?(:clj (if (future? lexicon) @lexicon lexicon))
-        #?(:cljs lexicon)
+        debug (log/debug (str "lightning-bolt@" depth " grammar:" (string/join ", " (map #(get-in % [:rule]) grammar))))
 
         depth (if depth depth 0)        
         ;; TODO: unifyc is expensive: factor out into a let.

                              (lightning-bolt grammar lexicon
                                              (get-in parent [:head])
                                              (+ 1 depth)
                                              index parent morph)
                              phrasal-children phrasal-children
                              ]
                          (log/debug (str "calling overh with parent: [" (get-in parent [:rule]) "]" "'" (morph parent) "'"
                                          " and children: "
                                          (if phrasal-children

                                                       ))
                                                phrasal-children))))
                          (if (empty? phrasal-children)
                            (let [message (str "no phrasal children for parent: " (morph parent) "(rule=" (get-in parent [:rule]) ")" )]
                              (log/debug message))
                            ;; else; there are phrasal-children, so attach them below parent:
                            (do
                              (log/debug (str "phrasal-children:" (map morph phrasal-children)))
                              (over/overh parent phrasal-children morph)))
                          )
                        )
                       candidate-parents))]
        (if (= (rand-int 2) 0)
          (lazy-cat lexical phrasal)
