        (sort-by #(get select-order (first %)))
        (map second)
        (reduce (fn [builder statement]
-                 (println builder statement)
                  (statement builder))
                (QueryBuilder/select)
                )
        (.toString)
        ))
+
+;;
+;; Insert Query
+;;
 
 (defn value
   [key value]


  (extend-protocol WhereBuilder
    clojure.lang.IPersistentVector
    (build-where [construct ^Select$Where query-builder]
      (reduce
       (fn [^Select$Where builder [query-type column value]]
         (if-let [eq-type (query-type-map query-type)]
           (.and builder ((query-type-map query-type) (name column) value))
           (throw (IllegalArgumentException. (str query-type " is not a valid Clause")))

(defn where
  [m]
  [:where
   (fn where-query [query-builder]
     (build-where m (.where query-builder)))])

(defn order-by
