 
 (defn- update-values [m f & args]
   "update values in a map by applying the given function and args"
- (reduce (fn [r [k v]] (assoc r k (apply f v args))) {} m))
+  (reduce (fn [r [k v]] (assoc r k (apply f v args))) {} m))
 
 (defn- inheritance-condition
   "Returns the inheritance condition for the given key value and options"

             :temporal {:name :temporal :type :temporal}
             :additionalAttributes {:name :attribute :type :attribute}
             :orbitNumber {:name :orbit-number :type :orbit-number}
             :equatorCrossingLongitude {:name :equator-crossing-longitude :type :num-range}
             :equatorCrossingDate {:name :equator-crossing-date :type :equator-crossing-date}
             :TwoDCoordinateSystemName {:name :two-d-coordinate-system-name :type :string}}})


        stop-date (date-time-from-strings year month day hour minute sec)]
    [start-date stop-date]))

(defn- element->num-range
  [concept-type element]
  (let [string-double-fn (fn [n] (when n (Double. n)))
        range-val (-> (cx/attrs-at-path element [:range])
                      (set/rename-keys {:lower :min-value :upper :max-value})
                      (update-in [:min-value] string-double-fn)
                      (update-in [:max-value] string-double-fn))]
    range-val))

(defmulti element->condition
  "Converts a aql element into a condition"
  (fn [concept-type elem]
