          _ (println "all-char-freqs" all-char-freqs)
       ] ))
 
-;(comment
     (println)
     (println "************************************************************")
-    (println "word-array" word-array)
+    (println "word-array" (map str/join word-array) )
     (loop [ guessed-chars  #{}
             clue           (make-clue tgt-word guessed-chars) 
           ]
-      (println "----------------------------------------")
-      (println "guessed-chars (" 
-         (count guessed-chars) ")" 
-                guessed-chars)
+      (println )
       (println "clue" clue)
       (let [
         keep-flag       (map #(guess-matches? % clue ) word-array )
-        keep-words      (filter-with keep-flag word-array)
-          _ (println "keep-words" (map str/join keep-words) )
-        col-char-freqs   (to-freqs-by-col keep-words)
-
-        new-guess       (make-guess clue col-char-freqs guessed-chars)
-          _ (println "new-guess" new-guess)
-        guessed-chars   (conj guessed-chars new-guess)
-          _ (println "guessed-chars" guessed-chars)
-        new-clue        (make-clue tgt-word guessed-chars)
-          _ (println "new-clue" new-clue)
-      ]
-        (if (some nil? new-clue)
-          (recur  (conj guessed-chars new-guess)  new-clue ) 
-        )
+        keep-words      (filter-with keep-flag word-array) ]
+          (println "keep-words" (map str/join keep-words) )
+          (if (= 1 (num-rows keep-words))
+            (let [final-guess (str/join (keep-words 0)) ]
+              (println (str "***** found word:  '" final-guess "'  *****") )
+              (println "matches:" (= final-guess tgt-word)) )
+          ;else
+            (let [
+              col-char-freqs  (to-freqs-by-col keep-words)
+              new-guess       (make-guess clue col-char-freqs guessed-chars)
+              guessed-chars   (conj guessed-chars new-guess)
+              new-clue        (make-clue tgt-word guessed-chars)
+                _ (println "new-clue" new-clue "  new-guess" new-guess 
+                   "  guessed-chars (" (count guessed-chars) ")" guessed-chars)
+              ]
+              (if (some nil? new-clue)
+                (recur  (conj guessed-chars new-guess)  new-clue ) 
+              ))
+          )
       ))
-;)
 
   )
 )


    tgt-word            [ \x  \b  \c  \d  ]
    clue                [ nil \b  nil nil ]

    keep-flag           (map #(guess-matches? % clue ) word-array )
      _ (println "keep-flag" keep-flag)
    keep-words          (filter-with keep-flag curr-words)
      _ (println "keep-words" keep-words)

    guessed-chars       #{ \b }
      _ (println "guessed-chars" guessed-chars)
    new-guess           (make-guess clue col-char-freqs guessed-chars)
      _ (println "new-guess" new-guess)
    guessed-chars       (conj guessed-chars new-guess)
      _ (println "guessed-chars" guessed-chars)

    new-clue            (make-clue tgt-word guessed-chars)
      _ (println "tgt-word" tgt-word)
      _ (println "clue"     clue)
      _ (println "new-clue" new-clue)
  ] )
)


    (for [ letter target-vec ] (guesses-set letter)) ))

(defn do-tests []

  ; Filtering one sequence with another
  (let [pred-vals5  [ true false 5 nil :a ] 
