    SUBDATASETS metadata dictionary against the supplied collection of
    acceptable dataset keys."
   [good-keys]
-  (let [substrings (map modis-subsets good-keys)]
-    (fn [name]
-      (some #(s/substring? % name) substrings))))
+  (fn [name]
+    (->> good-keys
+         (map modis-subsets)
+         (some #(s/substring? % name)))))
 
 (defn make-subdataset
   "Accepts a filepath from the SUBDATASETS dictionary of a MODIS Dataset,

     (let [bytes (get-bytes stream)
           temp-hdf (contrib.io/file tdir (hash-str stream))
           keep? (dataset-filter to-keep)]
       (do
         (contrib.io/copy bytes temp-hdf)
         (map make-subdataset
              (filter keep? (subdataset-names temp-hdf))))))
  ([tdir]
     (contrib.io/delete-file-recursively tdir)))


;; provides us with everything we need for proper classification of
;; the data we need.

(defmacro with-gdal-open
  "Accepts a vector containing a symbol and a path to a file capable
  of being opened with `gdal/Open`, and binds the opened dataset to
  the supplied symbol."
  [[sym path] & body]
  `(let [~sym (gdal/Open ~path)]
     (try (do (gdal/AllRegister)
              ~@body)
          (finally (. ~sym delete)))))

(defn metadata
  "Returns the metadata hashtable for the supplied MODIS Dataset."
  ([modis]
