     :url (:autosense flavors/urls)
     nil))
 
-(defn setify
-  "Takes a Clojure set and returns an Attribute"
+(defn- setify
+  "Takes a Clojure set and returns an AttributeSet implementation
+   based on bound."
   [^clojure.lang.IPersistentSet s bound]
   (if (seq s)
     (let [el (first s)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Job ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defprotocol IPrintable 
  (submit [this & {:keys [s-attrs]}] "Submits the IPrintable for printing, with optional service attributes."))

;; TODO: Only allow maps
(defrecord JobMap [doc printer job] 
  IPrintable
  (submit [this & {:keys [s-attrs]}]
    (let [{:keys [attrs obj]} job
          sdoc (make-doc (:source doc) (:flavor doc) (:attrs doc))]
      (.. obj (print @sdoc s-attrs)))))

;; TODO: Should printer be optional?
(defn make-jobmap [doc & {:keys [printer attrs]
                          :or {printer (printer)
                               attrs (setify #{MediaTray/MAIN} :job)}}]

                   nil)]
    (delay (SimpleDoc. resource flavor attrs))))

;; (defn -main [& args]
;;   (if (seq args)
;;     (doseq [v args]
