diff --git a/xchart-demo/src/main/java/org/knowm/xchart/standalone/Example0.java b/xchart-demo/src/main/java/org/knowm/xchart/standalone/Example0.java
index ec61fb3d3478c293e0b1c352033e603d05c498c9..3b5cc49cba8568951b84af51994e46cbeedf3920 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/standalone/Example0.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/standalone/Example0.java
@@ -16,9 +16,9 @@
  */
 package org.knowm.xchart.standalone;
 
+import org.knowm.xchart.Chart_XY;
 import org.knowm.xchart.QuickChart;
 import org.knowm.xchart.SwingWrapper;
-import org.knowm.xchart.internal.chartpart.Chart;
 
 /**
  * Creates a simple Chart using QuickChart
@@ -31,7 +31,7 @@ public class Example0 {
     double[] yData = new double[] { 2.0, 1.0, 0.0 };
 
     // Create Chart
-    Chart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
+    Chart_XY chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
 
     // Show it
     new SwingWrapper(chart).displayChart();
diff --git a/xchart/src/main/java/org/knowm/xchart/QuickChart.java b/xchart/src/main/java/org/knowm/xchart/QuickChart.java
index 45060305769b4b55486aa7582b352ff8c187c441..c65a1dfe46146483a6359be46a000f61aea95afc 100644
--- a/xchart/src/main/java/org/knowm/xchart/QuickChart.java
+++ b/xchart/src/main/java/org/knowm/xchart/QuickChart.java
@@ -49,7 +49,7 @@ public final class QuickChart {
    * @param yData An array containing Y-Axis data
    * @return a Chart Object
    */
-  public static Chart getChart(String chartTitle, String xTitle, String yTitle, String seriesName, double[] xData, double[] yData) {
+  public static Chart_XY getChart(String chartTitle, String xTitle, String yTitle, String seriesName, double[] xData, double[] yData) {
 
     double[][] yData2d = { yData };
     if (seriesName == null) {
@@ -71,7 +71,7 @@ public final class QuickChart {
    * @param yData An array of double arrays containing multiple Y-Axis data
    * @return a Chart Object
    */
-  public static Chart getChart(String chartTitle, String xTitle, String yTitle, String[] seriesNames, double[] xData, double[][] yData) {
+  public static Chart_XY getChart(String chartTitle, String xTitle, String yTitle, String[] seriesNames, double[] xData, double[][] yData) {
 
     // Create Chart
     Chart_XY chart = new Chart_XY(WIDTH, HEIGHT);
diff --git a/xchart/src/main/java/org/knowm/xchart/SwingWrapper.java b/xchart/src/main/java/org/knowm/xchart/SwingWrapper.java
index f55fcf6a838b58194ed997937d4ad1e2608dc3ea..dec727c5041f30fc90717cafaeaddd43b58bf280 100644
--- a/xchart/src/main/java/org/knowm/xchart/SwingWrapper.java
+++ b/xchart/src/main/java/org/knowm/xchart/SwingWrapper.java
@@ -30,11 +30,11 @@ import org.knowm.xchart.internal.chartpart.Chart;
  *
  * @author timmolter
  */
-public class SwingWrapper {
+public class SwingWrapper<T extends Chart> {
 
   private String windowTitle = "XChart";
 
-  private List<Chart> charts = new ArrayList<Chart>();
+  private List<T> charts = new ArrayList<T>();
   private int numRows;
   private int numColumns;
 
@@ -43,7 +43,7 @@ public class SwingWrapper {
    *
    * @param chart
    */
-  public SwingWrapper(Chart chart) {
+  public SwingWrapper(T chart) {
 
     this.charts.add(chart);
   }
@@ -53,7 +53,7 @@ public class SwingWrapper {
    *
    * @param charts
    */
-  public SwingWrapper(List<Chart> charts) {
+  public SwingWrapper(List<T> charts) {
 
     this.charts = charts;
 
@@ -68,7 +68,7 @@ public class SwingWrapper {
    * @param numRows - the number of rows
    * @param numColumns - the number of columns
    */
-  public SwingWrapper(List<Chart> charts, int numRows, int numColumns) {
+  public SwingWrapper(List<T> charts, int numRows, int numColumns) {
 
     this.charts = charts;
     this.numRows = numRows;
@@ -103,7 +103,7 @@ public class SwingWrapper {
       public void run() {
 
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        JPanel chartPanel = new XChartPanel(charts.get(0));
+        JPanel chartPanel = new XChartPanel<T>(charts.get(0));
         frame.add(chartPanel);
 
         // Display the window.
@@ -146,9 +146,9 @@ public class SwingWrapper {
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.getContentPane().setLayout(new GridLayout(numRows, numColumns));
 
-        for (Chart chart : charts) {
+        for (T chart : charts) {
           if (chart != null) {
-            JPanel chartPanel = new XChartPanel(chart);
+            JPanel chartPanel = new XChartPanel<T>(chart);
             frame.add(chartPanel);
           }
           else {
diff --git a/xchart/src/main/java/org/knowm/xchart/VectorGraphicsEncoder.java b/xchart/src/main/java/org/knowm/xchart/VectorGraphicsEncoder.java
index df527049a9aa934df3cb79dd305ca724663404d9..6607b35834395f333b41fa1c0064d92e0f788557 100644
--- a/xchart/src/main/java/org/knowm/xchart/VectorGraphicsEncoder.java
+++ b/xchart/src/main/java/org/knowm/xchart/VectorGraphicsEncoder.java
@@ -28,7 +28,7 @@ import de.erichseifert.vectorgraphics2d.VectorGraphics2D;
 
 /**
  * A helper class with static methods for saving Charts as bitmaps
- * 
+ *
  * @author timmolter
  */
 public final class VectorGraphicsEncoder {
diff --git a/xchart/src/main/java/org/knowm/xchart/XChartPanel.java b/xchart/src/main/java/org/knowm/xchart/XChartPanel.java
index 87f3d3abf581adbb276c1fd15b997ae6bf0cd4e4..f6c3c160879d8e6d3a24ad49b79ebcb44a4298b4 100644
--- a/xchart/src/main/java/org/knowm/xchart/XChartPanel.java
+++ b/xchart/src/main/java/org/knowm/xchart/XChartPanel.java
@@ -41,7 +41,6 @@ import javax.swing.filechooser.FileFilter;
 
 import org.knowm.xchart.BitmapEncoder.BitmapFormat;
 import org.knowm.xchart.VectorGraphicsEncoder.VectorGraphicsFormat;
-import org.knowm.xchart.internal.Series;
 import org.knowm.xchart.internal.Series_AxesChart;
 import org.knowm.xchart.internal.chartpart.Chart;
 
@@ -293,7 +292,7 @@ public class XChartPanel<T extends Chart> extends JPanel {
    * @param newErrorBarData - set null if there are no error bars
    * @return
    */
-  public Series updateSeries(String seriesName, List<?> newXData, List<? extends Number> newYData, List<? extends Number> newErrorBarData) {
+  public Series_AxesChart updateSeries(String seriesName, List<?> newXData, List<? extends Number> newYData, List<? extends Number> newErrorBarData) {
 
     Map<String, Series_AxesChart> seriesMap = chart.getSeriesMap();
     Series_AxesChart series = seriesMap.get(seriesName);