   (let [vm (vconstruct spec)]
     (info "stopping" machine)
     (.stop vm) 
-    (assert (not (= (.status vm) "running"))) ; might not match all providers
+    (not-running! vm)
     ))
 
 (deflow start 
   "Start a vm instance"
   [{:keys [machine] :as spec}]
   (let [vm (vconstruct spec)]
-    (assert (not (= (.status vm) "running"))) ; might not match all providers
+    (not-running! vm)
     (info "starting" machine)
     (.start vm) 
-    (assert (= (.status vm) "running")) ; might not match all providers
+    (running! vm)
     ))
 
 (deflow create

           (run-hooks ~hook-args ~(keyword name*) :error) 
           (throw t#))))))

(deflow reload 
  "Reloads a machine if one already exists, will distroy the old one"
  [{:keys [machine system-id] :as spec}]

      (info "clearing previous" machine)
      (.stop vm) 
      (.delete vm)) 
    (let [vm* (.create (vconstruct (updated-system system-id)))]  
      (.start vm*) 
      (running! vm*)
      (info "done system setup"))))

(deflow stop
