diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java
index 1d9c0603b8afb7b39e988d24c885a7d08fceeefe..db89c5f4a36476682e1ce3fcc5974e4c09b1125f 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java
@@ -75,7 +75,7 @@ public class BarChart02 implements ExampleChart {
       xData.add(date);
       yData.add(-1 * ((random.nextInt(i) + 1)));
     }
-    Series series = chart.addDateSeries("Model 77", xData, yData);
+    Series series = chart.addSeries("Model 77", xData, yData);
     series.setLineColor(SeriesColor.RED);
     chart.getStyleManager().setPlotGridLinesVisible(false);
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java
index 03ebdac379bc8b16cc53e9478a7bdd942e79e585..b15395ac3f8663eea8a3d045ac9a91fd9bfd95b4 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java
@@ -48,8 +48,8 @@ public class BarChart05 implements ExampleChart {
 
     // Create Chart
     Chart chart = new ChartBuilder().chartType(ChartType.Bar).width(800).height(600).title("Temperature vs. Color").xAxisTitle("Color").yAxisTitle("Temperature").theme(ChartTheme.GGPlot2).build();
-    chart.addCategorySeries("fish", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { -40, 30, 20, 60 })));
-    chart.addCategorySeries("worms", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { 50, 10, -20, 40 })));
+    chart.addSeries("fish", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { -40, 30, 20, 60 })));
+    chart.addSeries("worms", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { 50, 10, -20, 40 })));
 
     return chart;
   }
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java
index 25c60f8d0d7434760d21ecd91ccc3f08c539b51d..42ace1a0b3c2f1bf460467dfc8ba838e6121e04b 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java
@@ -75,7 +75,7 @@ public class DateChart01 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    Series series = chart.addDateSeries("blah", xData, yData);
+    Series series = chart.addSeries("blah", xData, yData);
     series.setMarker(SeriesMarker.NONE);
 
     return chart;
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java
index 548b0e1d6e032978a1e05d23bb1b72ea251f68e7..cf11711ee1c6943a6f8f601e105ce63dfe685cfe 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java
@@ -65,7 +65,7 @@ public class DateChart02 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java
index c426788f91468e5a268d50e4226d645cb5d54dae..5d9786aef032876e0e09591760767b3bfd6620ad 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java
@@ -67,7 +67,7 @@ public class DateChart03 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java
index 3bdcceac28346d7531e218f116087dc7d47d4476..cdc842dc5d0eda9a797e8448f648b9171c1da7e7 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java
@@ -65,7 +65,7 @@ public class DateChart04 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java
index 3fd6616fff5b9d1a92672c9b2ae710cc02fe644f..7bca4d329d896e4b4aee3595feaeffefed460d20 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java
@@ -65,7 +65,7 @@ public class DateChart05 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java
index da6688c999eae55321f829910dbc9efb55c8912b..1a95329946ed5819988d3df57958a096ad1d46e1 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java
@@ -65,7 +65,7 @@ public class DateChart06 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java
index a9f2b7bcb122e14c8fae6dc3c80d963bcb50f133..da274a443fe2e5950859f451d27c1fe51a82db51 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java
@@ -65,7 +65,7 @@ public class DateChart07 implements ExampleChart {
       yData.add(Math.random() * i);
     }
 
-    chart.addDateSeries("blah", xData, yData);
+    chart.addSeries("blah", xData, yData);
 
     return chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
index 969f2db0de06ff7ba3578e556eb3638f0d3b2fec..da94fc7a1c8fe32ba5c9c18b2d9fa6a6b331fc59 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
@@ -100,7 +100,7 @@ public class LineChart03 implements ExampleChart {
     chart.getStyleManager().setNormalDecimalPattern("#0.000");
     chart.getStyleManager().setLocale(Locale.GERMAN);
 
-    Series series = chart.addDateSeries("Fake Data", xData, yData);
+    Series series = chart.addSeries("Fake Data", xData, yData);
     series.setLineColor(SeriesColor.BLUE);
     series.setMarkerColor(Color.ORANGE);
     series.setMarker(SeriesMarker.CIRCLE);
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java
index 4561aa93fcc89b7fd84d0ec063b971362f861a60..c96c243f8729254870008472f16ee2dfd3b8f12d 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java
@@ -28,8 +28,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart;
 
 /**
  * Realtime
- * 
- * @author timmolter
+ * <p>
+ * Demonstrates the following:
+ * <ul>
+ * <li>real-time chart updates
+ * <li>fixed window
  */
 public class RealtimeChart01 implements ExampleChart {
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java
index d031319925acc37251a02a4cec782da8623541e7..f805714df0e2baeb0619e0b3abb7c836084b4b07 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java
@@ -28,8 +28,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart;
 
 /**
  * Realtime
- * 
- * @author timmolter
+ * <p>
+ * Demonstrates the following:
+ * <ul>
+ * <li>real-time chart updates
+ * <li>dynamic window
  */
 public class RealtimeChart02 implements ExampleChart {
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
index 9ddec50df324779fc23cfd22b667cff294db8ef5..7862a72a859653fda9286fe1ab22c488f33b1266 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
@@ -15,9 +15,9 @@
  */
 package com.xeiam.xchart.demo.charts.scatter;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Random;
+import java.util.Set;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.StyleManager.ChartType;
@@ -27,8 +27,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart;
 
 /**
  * Gaussian Blob
- * 
- * @author timmolter
+ * <p>
+ * Demonstrates the following:
+ * <ul>
+ * <li>ChartType.Scatter
+ * <li>Series data as a Set
  */
 public class ScatterChart01 implements ExampleChart {
 
@@ -42,8 +45,8 @@ public class ScatterChart01 implements ExampleChart {
   @Override
   public Chart getChart() {
 
-    List<Double> xData = new ArrayList<Double>();
-    List<Double> yData = new ArrayList<Double>();
+    Set<Double> xData = new HashSet<Double>();
+    Set<Double> yData = new HashSet<Double>();
     Random random = new Random();
     int size = 1000;
     for (int i = 0; i < size; i++) {
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
index 6668cc951d1e218bab3878f687ef12448f54db94..1d463c96424c5baae8d2005034b5a853f2d9c516 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
@@ -103,9 +103,9 @@ public class ThemeChart03 implements ExampleChart {
       e.printStackTrace();
     }
 
-    Series series1 = chart.addDateSeries("downloads", xData, y1Data);
+    Series series1 = chart.addSeries("downloads", xData, y1Data);
     series1.setLineStyle(SeriesLineStyle.DOT_DOT);
-    chart.addDateSeries("price", xData, y2Data);
+    chart.addSeries("price", xData, y2Data);
 
     return chart;
   }
diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java
index 3c6f41565029c396a6b03f96402b24367f2ef0bc..7eb04bae693dd9d00c132f0752d9eb84aeb1e4e4 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Chart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java
@@ -18,7 +18,7 @@ package com.xeiam.xchart;
 import java.awt.Graphics2D;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 import com.xeiam.xchart.StyleManager.ChartTheme;
@@ -104,60 +104,20 @@ public class Chart {
   }
 
   /**
-   * Add a Category series to the chart
-   * 
-   * @param seriesName
-   * @param xData
-   * @param yData
-   * @return
-   */
-  public Series addCategorySeries(String seriesName, Collection<String> xData, Collection<? extends Number> yData) {
-
-    return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
-  }
-
-  /**
-   * Add a Date series to the chart
-   * 
-   * @param seriesName
-   * @param xData the X-Axis data
-   * @param yData the Y-Axis data
-   * @return A Series object that you can set properties on
-   */
-  public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData) {
-
-    return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
-  }
-
-  /**
-   * Add a Date series to the chart with error bars
-   * 
-   * @param seriesName
-   * @param xData the X-Axis data
-   * @param yData the Y-Axis data
-   * @param errorBars the error bar data
-   * @return A Series object that you can set properties on
-   */
-  public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
-
-    return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars);
-  }
-
-  /**
-   * Add a Number series to the chart using Collection<Number>
+   * Add a series to the chart using Collections
    * 
    * @param seriesName
    * @param xData the X-Axis data
    * @param yData the Y-Axis data
    * @return A Series object that you can set properties on
    */
-  public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData) {
+  public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData) {
 
     return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
   }
 
   /**
-   * Add a Number series to the chart using Collection<Number> with error bars
+   * Add a Number series to the chart using Collections with error bars
    * 
    * @param seriesName
    * @param xData the X-Axis data
@@ -165,7 +125,7 @@ public class Chart {
    * @param errorBars the error bar data
    * @return A Series object that you can set properties on
    */
-  public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
+  public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
 
     return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars);
   }
@@ -194,20 +154,20 @@ public class Chart {
    */
   public Series addSeries(String seriesName, double[] xData, double[] yData, double[] errorBars) {
 
-    Collection<Number> xDataNumber = null;
+    List<Double> xDataNumber = null;
     if (xData != null) {
-      xDataNumber = new ArrayList<Number>();
+      xDataNumber = new ArrayList<Double>();
       for (double d : xData) {
         xDataNumber.add(new Double(d));
       }
     }
-    Collection<Number> yDataNumber = new ArrayList<Number>();
+    List<Double> yDataNumber = new ArrayList<Double>();
     for (double d : yData) {
       yDataNumber.add(new Double(d));
     }
-    Collection<Number> errorBarDataNumber = null;
+    List<Double> errorBarDataNumber = null;
     if (errorBars != null) {
-      errorBarDataNumber = new ArrayList<Number>();
+      errorBarDataNumber = new ArrayList<Double>();
       for (double d : errorBars) {
         errorBarDataNumber.add(new Double(d));
       }
diff --git a/xchart/src/main/java/com/xeiam/xchart/Series.java b/xchart/src/main/java/com/xeiam/xchart/Series.java
index 8d0109a7c996f6dafd5ec80b8d0582e7264a544a..213dd15776ef8387b3d361005d84eadcf29be638 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Series.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Series.java
@@ -20,7 +20,6 @@ import java.awt.Color;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
-import java.util.List;
 
 import com.xeiam.xchart.internal.chartpart.Axis.AxisType;
 import com.xeiam.xchart.internal.markers.Marker;
@@ -303,13 +302,13 @@ public class Series {
     return name;
   }
 
-  void replaceXData(List<?> newXData) {
+  void replaceXData(Collection<?> newXData) {
 
     xData = newXData;
     calculateMinMax();
   }
 
-  void replaceYData(List<? extends Number> newYData) {
+  void replaceYData(Collection<? extends Number> newYData) {
 
     yData = newYData;
     calculateMinMax();
diff --git a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
index b1f5161bd40a1c26a70e541311c4a7be66b26998..c2c9eedfd7e8df8a0d71fcf56fc1ad2cd94486f8 100644
--- a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
+++ b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java
@@ -27,6 +27,7 @@ import java.awt.event.MouseListener;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import javax.swing.AbstractAction;
@@ -251,7 +252,7 @@ public class XChartPanel extends JPanel {
    * @param newYData
    * @return
    */
-  public Series updateSeries(String seriesName, List<? extends Number> newYData) {
+  public Series updateSeries(String seriesName, Collection<? extends Number> newYData) {
 
     Series series = chart.getSeriesMap().get(seriesName);
     if (series == null) {
@@ -280,7 +281,7 @@ public class XChartPanel extends JPanel {
    * @param newYData
    * @return
    */
-  public Series updateSeries(String seriesName, List<?> newXData, List<? extends Number> newYData) {
+  public Series updateSeries(String seriesName, Collection<?> newXData, List<? extends Number> newYData) {
 
     Series series = chart.getSeriesMap().get(seriesName);
     if (series == null) {
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
index 6cbab1c1e7189700c09c566480bba3de2aabb3e4..fef1bda9dacaabdfcad169c4bbb08cc108d722ba 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
@@ -59,11 +59,13 @@ public class AxisPair implements ChartPart {
   }
 
   /**
-   * @param <T>
+   * @param seriesName
    * @param xData
    * @param yData
+   * @param errorBars
+   * @return Series
    */
-  public <T> Series addSeries(String seriesName, Collection<T> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
+  public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
 
     // Sanity checks
     if (seriesName == null) {
@@ -81,7 +83,7 @@ public class AxisPair implements ChartPart {
 
     Series series = null;
     if (xData != null) {
-      // Check if xAxis series contains Number or Date data
+      // inspect the series to see what kind of data it contains (Number, Date or String)
       Iterator<?> itr = xData.iterator();
       Object dataPoint = itr.next();
       if (dataPoint instanceof Number) {
@@ -93,6 +95,9 @@ public class AxisPair implements ChartPart {
       else if (dataPoint instanceof String) {
         xAxis.setAxisType(AxisType.String);
       }
+      else {
+        throw new RuntimeException("Series data must be either Number, Date or String type!!!");
+      }
       yAxis.setAxisType(AxisType.Number);
       series = new Series(seriesName, xData, xAxis.getAxisType(), yData, yAxis.getAxisType(), errorBars, seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle());
     }