 (extend-type DomainStatus
   IStatus
   (loading? [status]
-    (= (.getSetField status) DomainStatus$_Fields/LOADING))
+    (boolean
+     (or (= (.getSetField status) DomainStatus$_Fields/LOADING)
+         (and (ready? status)
+              (.get_update_status (.get_ready status))))))
   
   (ready? [status]
     (= (.getSetField status) DomainStatus$_Fields/READY))
-
-  (updating? [status]
-    (boolean
-     (and (ready? status)
-          (.get_update_status (.get_ready status)))))
  
   (failed? [status]
     (= (.getSetField status) DomainStatus$_Fields/FAILED))

(defprotocol IStatus
  (ready?   [_] "Is the current status ready?")
  (loading? [_] "Is the current status loading?")
  (updating? [_] "Is the current status updating?")
  (failed?  [_] "Is the current status failed?")
  (shutdown? [_] "Is the current status shutdown?"))


  (status [this] "Returns the current state object.")
  (to-ready [this] "Returns a new ready state.")
  (to-loading [this] "Returns a new loading-state.")
  (to-failed [this msg] "Returns a new failed state.")
  (to-shutdown [this] "Returns a new shutting-down state."))

