   (remove-vertex!
     [_ v]
     (when (get-in @state [:vertices (:id v)])
+      (notify-watches @watches [:remove-vertex v])
       (swap! state update :vertices dissoc (:id v))
-      (disconnect-all! v)
-      (notify-watches @watches [:remove-vertex v])
+      ;;(disconnect-all! v)
       true))
   (vertex-for-id
     [_ id] (get-in @state [:vertices id]))

        (when (should-signal? v s-thresh)
          (signal! v async-vertex-signal))
        #_(when (should-collect? v c-thresh)
          (collect! v))
        _)
      (execute!
        [_]

      (include-vertex! [_ v] (err/unsupported!))
      (execute!
        [_]
        (add-watch! g :remove-vertex watch-id (fn [[__ v]] (signal! v sync-vertex-signal)))
        (let [t0 (now)]
          (loop [i 0, colls 0, sigs 0]
            (if (<= i max-iter)
              (let [verts (vertices g)
                    sigs' (sig-fn verts s-thresh)
                    colls' (coll-fn verts c-thresh)]
                (if (or (pos? sigs') (pos? colls'))
                  (recur (inc i) (long (+ colls colls')) (long (+ sigs sigs')))
                  (do (remove-watch! g :remove-vertex watch-id)
                      (execution-result :converged colls sigs t0 {:iterations i}))))
