   ([chart s-name x-data y-data error-bars]
    (.addSeries chart s-name x-data y-data error-bars)))
 
-(defn add-series
+(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)."
   [chart s-name data]
   (if (sequential? data)
     (apply add-raw-series chart s-name data)

   (let [chart (CategoryChart. width height)]
     (doseq [[s-name data] series]
       (let [render-style (-> data :style :render-style)]
         (doto-cond (add-series chart s-name data)
          render-style (.setChartCategorySeriesRenderStyle
                        (category-render-styles render-style)))))
     (doto-cond

   (let [chart (XYChart. width height)]
     (doseq [[s-name data] series]
       (let [render-style (-> data :style :render-style)]
         (doto-cond (add-series! chart s-name data)
          render-style (.setXYSeriesRenderStyle (xy-render-styles render-style)))))
     (doto-cond
      (.getStyler chart)
