                  (fn [acc v] (assoc acc v (add-vertex! g (assoc vspec :val #{v}))))
                  {} types)]
       (doseq [[a b] hierarchy]
-        (connect-to! (verts a) (verts b) signal-forward nil))
+        (add-edge! g (verts a) (verts b) signal-forward nil))
       verts)))
 
 ;;(warn :free-ram (.freeMemory (Runtime/getRuntime)))

    (dotimes [i num-edges]
      (->> (make-strand verts e-length)
           (partition 2 1)
           (map (fn [[a b]] (connect-to! (verts a) (verts b) signal-sssp 1)))
           (doall)))
    nil))

(comment
  (def a (add-vertex! g {:val 0   ::collect-fn collect-sssp}))
  (def b (add-vertex! g {:val nil ::collect-fn collect-sssp}))
  (def c (add-vertex! g {:val nil ::collect-fn collect-sssp}))
  (def d (add-vertex! g {:val nil ::collect-fn collect-sssp}))

  (connect-to! a b signal-sssp 1)
  (connect-to! a c signal-sssp 3)
  (connect-to! b c signal-sssp 1)
  (connect-to! c d signal-sssp 1)

  (prn @(execute! ctx))


   (defmethod print-method Vertex
     [^Vertex o ^java.io.Writer w] (.write w (.toString (into {} o)))))

(defn vertex
  [id state]
  (map->Vertex
