   [{:keys [font] :as args} v]
   (.deriveFont font (calc-font-size args v)))
 
+(defn- get-color
+  [{:keys [color-fn]} v]
+  (color-fn v))
+
 (defn- build-word-info
-  [g args [text value]]
-  (let [font* (get-font args value)]
+  [g args [id text value1 value2]]
+  (let [font* (get-font args value1)
+        color (get-color args value2)]
     {:text text
      :font font*
+     :color color
      :word-bounds (string-centered-bounds g font* text)
      :glyph-bounds (string-centered-glyphbounds g font* text)}))
 

      ;(fill-shape bg)
      ;(draw-shape bg)
      )
    (doseq [{:keys [text font position rotation]} (filter #(not (nil? %)) word-infos)]
      (draw-string-centered g text (translate-point c position) :font font :rotation rotation))))

(defn paint-cloud
  [cloud & args]

(def font-style Font/BOLD)
(def base-font (Font. font-family font-style (float 100)))

(defn default-color-fn
  [value]
  (let [n (float 0.4)
        v1 (float value)
        v2 (float (- 1.0 value))]
  (Color. v1 n v2)))

(def default-args
  {:width 600
   :height 200
