   (str "(" (name bool) ")"))
 
 (defmethod compile-media-query :basic-range [[_ {:keys [left operator right]}]]
-  (let [left     (compile-media-query left)
-        right    (compile-media-query right)
+  (let [left (compile-media-query left)
+        right (compile-media-query right)
         operator (name operator)]
     (str "(" left " " operator " " right ")")))
 
 (defmethod compile-media-query :complex-range
   [[_ [_ {:keys [left left-operator feature-name right-operator right]}]]]
-  (let [left           (compile-media-query [:feature-value left])
-        feature-name   (compile-media-query [:feature-name feature-name])
-        right          (compile-media-query [:feature-value right])
-        left-operator  (name left-operator)
+  (let [left (compile-media-query [:feature-value left])
+        feature-name (compile-media-query [:feature-name feature-name])
+        right (compile-media-query [:feature-value right])
+        left-operator (name left-operator)
         right-operator (name right-operator)]
     (str "(" left " " left-operator " " feature-name " " right-operator " " right ")")))
 
 (defn -compile-media-query [query]
-  (let [ret (s/conform ::media-query query)
+  (let [ret (s/conform ::media-query-list query)
         ret (if (= ::s/invalid ret)
-              (throw (Error. (s/explain ::media-query query)))
+              (throw (Error. (s/explain ::media-query-list query)))
               (compile-media-query ret))]
     (->> (flatten ret)
          (clojure.string/join " ")

  (c/reset-env! {:cls "class"})

  (build-media
    {[:only :screen :and [:min-width "300px"]]
     {:font-size 'p
      :&:hover   {:color 'g}}}))

    :else feature-value))

(defmethod compile-media-query :plain [[_ {:keys [feature-name feature-value]}]]
  (let [feature-name (compile-media-query [:feature-name feature-name])
        feature-value (compile-media-query [:feature-value feature-value])]
    (str "(" feature-name ":" feature-value ")")))

