     styling
     (assoc styling :annotation-distance
            (- 1.0 (/ (:donut-thickness styling 0.33) 2)))))
+
+(extend-type PieChart
+  Chart
+  (add-series! [chart s-name data]
+    (if (number? data)
+      (.addSeries chart s-name data)
+      (let [{:keys [render-style fill-color show-in-legend?]} (:style num)
+            val (:value num)]
+        (doto-cond
+         (.addSeries chart s-name val)
+         render-style (.setChartPieSeriesRenderStyle (pie-render-styles render-style))
+         fill-color (.setFillColor (colors fill-color fill-color))
+         (not (nil? show-in-legend?)) (.setShowInLegend (boolean show-in-legend?)))))))
 
 (defn pie-chart
   "Returns a pie chart. The series map is in this case just a mapping

        (assoc-in-nonexisting [:chart :title :font] font))
    style-map))

(defn add-series!
  "Adds an XY or category series to an already existing chart. It is preferable
  to provide all series upfront to avoid mutable operations on a chart.

  For bubble-charts, use `add-bubble-series!`. For pie charts, just use
  (.addSeries chart name val)."
  ;; TODO: Make this polymorphic over chart types
  [chart s-name data]
  (if (sequential? data)
    (apply add-raw-series chart s-name data)
    (let [{:keys [x y error-bars style]} data
          {:keys [marker-color marker-type
                  line-color line-style line-width
                  fill-color show-in-legend?
                  xy-render-style]} style]
      (doto-cond
       (if error-bars
         (add-raw-series chart s-name x y error-bars)
         (add-raw-series chart s-name x y))
       xy-render-style (.setXYSeriesRenderStyle (xy-render-styles xy-render-style))
       marker-color (.setMarkerColor (colors marker-color marker-color))
       marker-type (.setMarker (markers marker-type marker-type))
       line-color (.setLineColor (colors line-color line-color))
       line-style (.setLineStyle (strokes line-style line-style))
       line-width (.setLineWidth (float line-width))
       fill-color (.setFillColor (colors fill-color fill-color))
       (not (nil? show-in-legend?)) (.setShowInLegend (boolean show-in-legend?))))))

(defn xy-chart
  "Returns an xy-chart. See the tutorial for more information about

                                extra-categories)]
     (category-chart* normalized-seq styling))))

(extend-type BubbleChart
  Chart
  (add-series! [chart s-name data]
    (if (sequential? data)
      (apply add-raw-series chart s-name data)
      (let [{:keys [x y bubble style]} data
            {:keys [marker-color marker-type
                    line-color line-style line-width
                    fill-color show-in-legend? render-style]} style]
        (doto-cond
         (add-raw-series chart s-name x y bubble)
         ;; NOTE: Add render style when squares are added to the impl?
         render-style (.setBubbleSeriesRenderStyle (bubble-render-styles render-style))
         line-color (.setLineColor (colors line-color line-color))
         line-style (.setLineStyle (strokes line-style line-style))
         line-width (.setLineWidth (float line-width))
         fill-color (.setFillColor (colors fill-color fill-color))
         (not (nil? show-in-legend?)) (.setShowInLegend (boolean show-in-legend?)))))))

(defn bubble-chart*
  "Returns a raw bubble chart. Bubble charts are hard to make right,
