              (let [resort (case time-type
                             :released reverse
                             :taken-marstime identity
-                            :taken-utc reverse)
-                   sorted (-> (sort-by time-type imgs) resort)]
-               [time-type (->> (sort-by time-type imgs)
+                            :taken-utc reverse)]
+               [time-type (->> imgs
+                            (sort-by time-type)
                             resort
-                            (map format-dates)
+                            (map format-image)
                             doall)]))))
+
+;;
+;; Transformations
+;;
 
 ;;
 ;; State & Main

    (->> img-rows
      (map (% row->map labels))
      (map classify-size))))

;;
;; Date Formatting
;;
;; Gotta store and display them as strings, but want them as Joda DateTime
;; objects in between.
;;

(defn parse-dates
  [image|s]
  (if (sequential? image|s)
    (map parse-dates image|s)
    (let [image image|s
          strs (select-keys image times/types)
          dates (into {} (for [[type date-str] strs]
                           [type (times/rfc-parser date-str)]))
          lag (-> (time/interval (:taken-utc dates) (:released-utc dates))
                times/format-interval)]
      (-> (merge image dates)
        (assoc :lag lag)))))

(defn unparse-dates
  [image|s]
  (if (sequential? image|s)
    (map unparse-dates image|s)
    (let [image image|s
          dates (select-keys image times/types)]
      (into image (for [[type date] dates]
                    [type (times/rfc-printer date)])))))

(defn format-dates
  [image|s]
  (if (sequential? image|s)
    (map format-dates image|s)
    (let [image image|s
          full-dates (select-keys image (disj times/types :taken-marstime))]
      (merge
        image
        {:taken-marstime (-> image :taken-marstime times/marstime-printer)}
        (into {} (for [[type date] full-dates]
                   [type (times/utc-printer date)]))))))

;;
;; Actually Fetching the Pages

  "Read the images cached in the `$images-file`."
  []
  (binding [*read-eval* false]
    (try (->> $images-file
           slurp
           read-string
           (map parse-dates))
      (catch java.io.FileNotFoundException _ ))))

(defn cache-images!
  [imgs]
  (->> imgs
    (map unparse-dates)
    prn-str
    (spit $images-file)))

(defn print-summary
  [new-images all-images]
