diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java
index 3e1bd9d44701ea1501b57eee13e2a462a47edf60..262cdc4944a2309e83620173aa5233cf2cd050ea 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java
@@ -16,7 +16,7 @@
 package com.xeiam.xchart.demo.charts.area;
 
 import java.util.ArrayList;
-import java.util.Collection;
+import java.util.List;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.ChartBuilder;
@@ -49,8 +49,8 @@ public class AreaChart02 implements ExampleChart {
     // Create Chart
     Chart chart = new ChartBuilder().chartType(ChartType.Area).width(800).height(600).title("AreaChart02").xAxisTitle("X").yAxisTitle("Y").build();
 
-    Collection<Number> xData = new ArrayList<Number>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Integer> xData = new ArrayList<Integer>();
+    List<Integer> yData = new ArrayList<Integer>();
     for (int i = 0; i < 5; i++) {
       xData.add(i);
       yData.add(i * i);
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 b48e97b3a96f1e841086f4413c7c3cc7d9ec673d..1d9c0603b8afb7b39e988d24c885a7d08fceeefe 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
@@ -21,6 +21,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -59,7 +60,7 @@ public class BarChart02 implements ExampleChart {
     // Create Chart
     Chart chart = new ChartBuilder().theme(ChartTheme.Matlab).chartType(ChartType.Bar).width(800).height(600).title("Units Sold Per Year").xAxisTitle("Year").yAxisTitle("Units Sold").build();
 
-    Collection<Date> xData = new ArrayList<Date>();
+    List<Date> xData = new ArrayList<Date>();
     Collection<Number> yData = new ArrayList<Number>();
 
     Random random = new Random();
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 e67281bdfdd0614527d771f8e8a405489cbe0e42..25c60f8d0d7434760d21ecd91ccc3f08c539b51d 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -57,8 +57,8 @@ public class DateChart01 implements ExampleChart {
     Random random = new Random();
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     DateFormat sdf = new SimpleDateFormat("HH:mm:ss.S");
     Date date = null;
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 f1bd1f2a868b4986c2cfb715463e5df7661003ff..548b0e1d6e032978a1e05d23bb1b72ea251f68e7 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart02 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
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 76293fcc9b08cfdfad38826a87744523bb5f2c95..c426788f91468e5a268d50e4226d645cb5d54dae 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart03 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
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 a462da43dd26ff42bd53a1d99c00ba70116008c9..3bdcceac28346d7531e218f116087dc7d47d4476 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart04 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
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 524d1a057ef38098099972fb4babfc26bfbaa6c0..3fd6616fff5b9d1a92672c9b2ae710cc02fe644f 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart05 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
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 e62410bb5b6539171aed868decf9af4b6a7cd8e2..da6688c999eae55321f829910dbc9efb55c8912b 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart06 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
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 3060c04839868f4b70629886214c2ecc44e709b1..a9f2b7bcb122e14c8fae6dc3c80d963bcb50f133 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Random;
 
 import com.xeiam.xchart.Chart;
@@ -48,8 +48,8 @@ public class DateChart07 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
 
     Random random = new Random();
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
index 70c432dff98daaaabad6fc81facf80750e71e583..e698320cb89f655850d2fd56e32e8444c366efa2 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
@@ -46,8 +46,8 @@ public class LineChart01 implements ExampleChart {
   public Chart getChart() {
 
     // generates Log data
-    List<Number> xData = new ArrayList<Number>();
-    List<Number> yData = new ArrayList<Number>();
+    List<Integer> xData = new ArrayList<Integer>();
+    List<Double> yData = new ArrayList<Double>();
     for (int i = -3; i <= 3; i++) {
       xData.add(i);
       yData.add(Math.pow(10, i));
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
index dc8b91a30d8a711f2f5eff355c64b3da3ecf164c..3bbdb7a3695d822563275d35ba3e0b0be78fb7b5 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
@@ -47,12 +47,12 @@ public class LineChart02 implements ExampleChart {
 
     // generates sine data
     int size = 30;
-    List<Number> xData1 = new ArrayList<Number>();
-    List<Number> yData1 = new ArrayList<Number>();
+    List<Integer> xData = new ArrayList<Integer>();
+    List<Double> yData = new ArrayList<Double>();
     for (int i = 0; i <= size; i++) {
       double radians = (Math.PI / (size / 2) * i);
-      xData1.add(i - size / 2);
-      yData1.add(size * Math.sin(radians));
+      xData.add(i - size / 2);
+      yData.add(size * Math.sin(radians));
     }
 
     // Create Chart
@@ -63,7 +63,7 @@ public class LineChart02 implements ExampleChart {
     chart.getStyleManager().setLegendVisible(false);
 
     // Series 1
-    Series series1 = chart.addSeries("y=sin(x)", xData1, yData1);
+    Series series1 = chart.addSeries("y=sin(x)", xData, yData);
     series1.setLineColor(SeriesColor.PURPLE);
     series1.setLineStyle(SeriesLineStyle.DASH_DASH);
     series1.setMarkerColor(SeriesColor.GREEN);
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 2c1613ea13fbdb9d3627b5e12fac890d8154ee43..969f2db0de06ff7ba3578e556eb3638f0d3b2fec 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
@@ -55,7 +55,7 @@ public class LineChart03 implements ExampleChart {
 
     // generates linear data
     Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> yData = new ArrayList<Number>();
+    Collection<Double> yData = new ArrayList<Double>();
 
     DateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
     Date date = null;
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
index f85b70dad420131db73123744da4bcb1ac8b7fe1..c8121517647a81a08eba7fc9d5a515e6ad645db3 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
@@ -32,6 +32,7 @@ import com.xeiam.xchart.demo.charts.ExampleChart;
  * <li>Error Bars
  * <li>Logarithmic Y-Axis
  * <li>Setting min and max values for Y-Axis
+ * <li>Multi-line series labels in legend
  */
 public class LineChart06 implements ExampleChart {
 
@@ -61,7 +62,7 @@ public class LineChart06 implements ExampleChart {
 
     chart.getStyleManager().setErrorBarsColor(Color.black);
 
-    Series series1 = chart.addSeries("Error bar test data", xData, yData1, errdata);
+    Series series1 = chart.addSeries("Error bar\ntest data", xData, yData1, errdata);
 
     series1.setLineStyle(SeriesLineStyle.SOLID);
 
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 32f9ce16ae36882a8936da399acc76bad9772c0e..9ddec50df324779fc23cfd22b667cff294db8ef5 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
@@ -42,8 +42,8 @@ public class ScatterChart01 implements ExampleChart {
   @Override
   public Chart getChart() {
 
-    List<Number> xData = new ArrayList<Number>();
-    List<Number> yData = new ArrayList<Number>();
+    List<Double> xData = new ArrayList<Double>();
+    List<Double> yData = new ArrayList<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/scatter/ScatterChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java
index d7b3f60fc32aa291c6753800afe05d98056c7bef..cc7959570a9d54c91729536df3af42b33a889758 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java
@@ -48,8 +48,8 @@ public class ScatterChart02 implements ExampleChart {
   @Override
   public Chart getChart() {
 
-    List<Number> xData = new ArrayList<Number>();
-    List<Number> yData = new ArrayList<Number>();
+    List<Double> xData = new ArrayList<Double>();
+    List<Double> yData = new ArrayList<Double>();
     Random random = new Random();
     int size = 400;
     for (int i = 0; i < size; i++) {
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart04.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart04.java
index f65cdb2bf0f9ecf5f682a9a5d822b532c4c1b174..99a17fce522b92915333edaa114644dd3c675090 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart04.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart04.java
@@ -51,12 +51,12 @@ public class ScatterChart04 implements ExampleChart {
 
     // generates data
     int size = 10;
-    List<Number> xData1 = new ArrayList<Number>();
-    List<Number> yData1 = new ArrayList<Number>();
-    List<Number> errorBars = new ArrayList<Number>();
+    List<Integer> xData = new ArrayList<Integer>();
+    List<Double> yData = new ArrayList<Double>();
+    List<Double> errorBars = new ArrayList<Double>();
     for (int i = 0; i <= size; i++) {
-      xData1.add(i);
-      yData1.add(10 * Math.exp(-i));
+      xData.add(i);
+      yData.add(10 * Math.exp(-i));
       errorBars.add(Math.random() + .3);
     }
 
@@ -69,7 +69,7 @@ public class ScatterChart04 implements ExampleChart {
     chart.getStyleManager().setAxisTitlesVisible(false);
 
     // Series
-    Series series = chart.addSeries("10^(-x)", xData1, yData1, errorBars);
+    Series series = chart.addSeries("10^(-x)", xData, yData, errorBars);
     series.setMarkerColor(Color.RED);
     series.setMarker(SeriesMarker.SQUARE);
 
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 09366e5b46d7a1183d521575a8c2a86dd15d839c..6668cc951d1e218bab3878f687ef12448f54db94 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
@@ -19,8 +19,8 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.ChartBuilder;
@@ -56,9 +56,9 @@ public class ThemeChart03 implements ExampleChart {
     chart.getStyleManager().setPlotGridLinesVisible(false);
     chart.getStyleManager().setXAxisTickMarkSpacingHint(100);
     // generate data
-    Collection<Date> xData = new ArrayList<Date>();
-    Collection<Number> y1Data = new ArrayList<Number>();
-    Collection<Number> y2Data = new ArrayList<Number>();
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> y1Data = new ArrayList<Double>();
+    List<Double> y2Data = new ArrayList<Double>();
 
     DateFormat sdf = new SimpleDateFormat("yyyy-MM");
 
@@ -66,38 +66,38 @@ public class ThemeChart03 implements ExampleChart {
     try {
       date = sdf.parse("2012-08");
       xData.add(date);
-      y1Data.add(120);
-      y2Data.add(15);
+      y1Data.add(120d);
+      y2Data.add(15d);
 
       date = sdf.parse("2012-11");
       xData.add(date);
-      y1Data.add(165);
-      y2Data.add(15);
+      y1Data.add(165d);
+      y2Data.add(15d);
 
       date = sdf.parse("2013-01");
       xData.add(date);
-      y1Data.add(210);
-      y2Data.add(20);
+      y1Data.add(210d);
+      y2Data.add(20d);
 
       date = sdf.parse("2013-02");
       xData.add(date);
-      y1Data.add(400);
-      y2Data.add(30);
+      y1Data.add(400d);
+      y2Data.add(30d);
 
       date = sdf.parse("2013-03");
       xData.add(date);
-      y1Data.add(800);
-      y2Data.add(100);
+      y1Data.add(800d);
+      y2Data.add(100d);
 
       date = sdf.parse("2013-04");
       xData.add(date);
-      y1Data.add(2000);
-      y2Data.add(120);
+      y1Data.add(2000d);
+      y2Data.add(120d);
 
       date = sdf.parse("2013-05");
       xData.add(date);
-      y1Data.add(3000);
-      y2Data.add(150);
+      y1Data.add(3000d);
+      y2Data.add(150d);
 
     } catch (ParseException e) {
       e.printStackTrace();
diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java
index 4c1037d17a8d896caa7e74cccd4ccc9e1a9e3fbb..39627f8d0f1b08e29631dc5dbe58c5d123174cd4 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Chart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java
@@ -111,7 +111,7 @@ public class Chart {
    * @param yData
    * @return
    */
-  public Series addCategorySeries(String seriesName, Collection<String> xData, Collection<Number> yData) {
+  public Series addCategorySeries(String seriesName, Collection<String> xData, Collection<? extends Number> yData) {
 
     return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
   }
@@ -124,7 +124,7 @@ public class Chart {
    * @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<Number> yData) {
+  public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData) {
 
     return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
   }
@@ -138,7 +138,7 @@ public class Chart {
    * @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<Number> yData, Collection<Number> errorBars) {
+  public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
 
     return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars);
   }