             remote-version (.mostRecentVersion remote-store)]
         (when (and local-version remote-version)
           (< local-version remote-version)))))
+
+;; ## Sinking and Sourcing
+;;
+;; These methods allow the user to sink and source objects from the
+;; supplied domain.
 
 ;; ## Domain Tidying
 

  (let [remote-fs     (h/filesystem hdfs-conf)
        remote-store  (DomainStore. remote-fs remote-path)
        local-store   (mk-local-store local-root remote-store)
        index (shard/generate-index hosts (-> local-store .getSpec .getNumShards))]
    (Domain. local-store
             remote-store
             (Utils/makeSerializer (.getSpec local-store))

  (fn [_ remote]
    (class remote)))

(defmethod mk-local-store nil
  [local-path null]
  (DomainStore. local-path))

(defmethod mk-local-store String
  [local-path remote-path]
  (try (mk-local-store local-path (DomainStore. remote-path))
       (catch IllegalArgumentException _
         (u/throw-runtime "No remote DomainStore at " remote-path))))

(defmethod mk-local-store DomainStore
  [local-path remote-vs]
