     (println tree2)
     (println tree3)
     (join #js [itr1 itr2 itr3])
-    ))
-
+    )
+
+  (let [tree1 (tree 10)
+        _ (doseq [x [#js [0 1 4]
+                     #js [0 1 6]
+                     #js [1 1 7]
+                     #js [1 2 7]
+                     #js [1 3 3]
+                     ]]
+            (.assoc! tree1 x 0))
+        tree2 (tree 10)
+        _ (doseq [x [#js [0 3]
+                     #js [0 6]
+                     #js [1 7]]]
+            (.assoc! tree2 x 0))
+        itr1 (magic-iterator tree1)
+        itr2 (magic-iterator tree2 #js [0 nil 1])
+        ]
+    ;(.seek itr2 #js [0 0 0])
+    ;(.key itr2)
+    (println tree1)
+    (println tree2)
+    (join #js [itr1 itr2])
+    )
+
+
+
+
+  )
+

                    (< (typeof a) (typeof b)))
              bs
              as)))
        as))))

(defn fill! [as fill]
  (dotimes [ix (alength as)]

                (dotimes [x tuple-len]
                  (.push arr false))
                arr)]
    (loop [key start
           i 10]
      (when (and key (> i 0))
        (println "key: " key)
        (when (seek-all iterators len key)
          (->keys iterators keys len)
          (println keys)
          (find-least keys len tuple-len min-fill)
          (println "Min: " min-fill)
          (recur (find-greatest iterators keys len results min-fill) (dec i)))))
    results
    ))

