diff --git a/.gitignore b/.gitignore
index a8f76ad7a04b93fdbb6ef6bab673894d2492b5d4..877904298ad347ba550dd3fda06fe7852092e464 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
-dist/
+target/
 javadoc/
 bin/
 .classpath
 .project
-.settings
\ No newline at end of file
+.settings/
\ No newline at end of file
diff --git a/build.properties b/build.properties
deleted file mode 100644
index e2a43317ec1999fcc3490c7ee336021d8f2334c7..0000000000000000000000000000000000000000
--- a/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-project.name=xchart
-build.version=1.0.2
-lib.dir=lib
-src.dir=src
-web.dir=web
-build.dir=build
-dist.dir=dist
-javadoc.dir=javadoc
\ No newline at end of file
diff --git a/build.xml b/build.xml
deleted file mode 100644
index d320cb7cefe15854ae4cb99aec4b0f2e3c1694f5..0000000000000000000000000000000000000000
--- a/build.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0"?>
-<project name="xchart" default="jar" basedir=".">
-
-    <property file="build.properties"/>
-	
-    <path id="classpath">
-    	<fileset dir="${lib.dir}" />
-    </path>
-
-    <target name="clean">
-        <echo>Cleaning the ${build.dir}</echo>
-        <delete dir="${build.dir}"/>
-        <delete dir="${dist.dir}"/>
-    </target>
-
-    <target name="init" depends="clean">
-        <echo>Creating the build directory</echo>
-        <mkdir dir="${build.dir}"/>
-    	<mkdir dir="${build.dir}/META-INF"/>
-        <mkdir dir="${dist.dir}"/>
-    </target>
-
-    <target name="compile" depends="init">
-        <echo>Compile the source files</echo>
-        <javac srcdir="${src.dir}" destdir="${build.dir}" debug="on">
-            <classpath refid="classpath"/>
-        </javac>
-    </target>
-	
-    <target name="manifest">
-        <echo>Creating manifest</echo>
-        <tstamp>
-           <format property="timestamp" pattern="yyyy-MM-dd HH:mm:ss" />
-        </tstamp>
-        <manifest file="${build.dir}/META-INF/MANIFEST.MF">
-           <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Build-Version" value="${build.version}"/> 
-           <attribute name="Build-Date" value="${timestamp}"/>                 
-       </manifest>
-    </target>
-	
-	<target name="build" depends="compile,manifest">
-	      <jar jarfile="${dist.dir}/${project.name}-${build.version}.jar">
-	         <fileset dir="${build.dir}">
-	             <include name="**/*.class"/>
-	         </fileset>
-	       </jar>
-	</target>
-
-
-    <target name="delete">
-        <delete dir="${build.dir}"/>
-    </target>
-	
-   <target name="jar" depends="build, delete">
-    </target>
-	
-	<target name="javadoc">
-	    <javadoc
-	           access="public"
-	           destdir="${javadoc.dir}"
-	           author="true"
-	           version="true"
-	           use="true"
-	           windowtitle="com.xeiam.xchart"
-	       >
-	    	<classpath>
-    	        <fileset dir="${lib.dir}">
-    	            <include name="**/*.jar"/>
-    	        </fileset>
-	    	</classpath>
-	        <fileset dir="${src.dir}">
-	            <include name="**/*.java"/>
-	        </fileset>
-	    </javadoc>
-		
-	</target>
-	
-</project>
\ No newline at end of file
diff --git a/lib/servlet-api.jar b/lib/servlet-api.jar
deleted file mode 100644
index 9dc186877c37095d851cfcc975b60c9db17e497f..0000000000000000000000000000000000000000
Binary files a/lib/servlet-api.jar and /dev/null differ
diff --git a/old/xchart-1.0.0.jar b/old/xchart-1.0.0.jar
deleted file mode 100644
index 9ec5dbb574dc309e2fbc505e2368e96ce2d7b74b..0000000000000000000000000000000000000000
Binary files a/old/xchart-1.0.0.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8884e82b76da3592399ad0efe540cdf0144bd34c
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,51 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<name>XChart</name>
+	<groupId>com.xeiam</groupId>
+	<artifactId>xchart</artifactId>
+	<version>1.1.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<description>Basic Charts for Java Applications</description>
+	<url>http://xeiam.com</url>
+	<inceptionYear>2012</inceptionYear>
+
+	<organization>
+		<name>Xeiam, LLC</name>
+		<url>http://xeiam.com/</url>
+	</organization>
+
+	<developers>
+		<developer>
+			<name>Tim Molter</name>
+		</developer>
+		<developer>
+			<name>Alex Nugent</name>
+		</developer>
+	</developers>
+
+	<distributionManagement>
+		<snapshotRepository>
+			<id>snapshots</id>
+			<name>Nexus Snapshots Repo</name>
+			<url>http://nexus.xeiam.com/content/repositories/snapshots/</url>
+		</snapshotRepository>
+		<repository>
+			<id>releases</id>
+			<name>Nexus Release Repo</name>
+			<url>http://nexus.xeiam.com/nexus/content/repositories/releases/</url>
+		</repository>
+	</distributionManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>3.0.1</version>
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
+
+</project>
diff --git a/sample/com/xeiam/examples/ChartServletExample.java b/sample/com/xeiam/examples/ChartServletExample.java
deleted file mode 100644
index b886cc09986530d8f1a5b1e1a0da7cddec8ac00f..0000000000000000000000000000000000000000
--- a/sample/com/xeiam/examples/ChartServletExample.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Copyright 2011 Xeiam LLC.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.xeiam.examples;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.xeiam.xcharts.BitmapEncoder;
-import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.QuickChart;
-
-/**
- * Generates, stores, and serves charts
- * 
- * @author timmolter
- */
-@javax.servlet.annotation.WebServlet(name = "ChartServlet", urlPatterns = { "/chart" }, asyncSupported = true)
-public class ChartServletExample extends HttpServlet {
-
-    private static Map<String, Chart> chartMap = new HashMap<String, Chart>();
-
-    @Override
-    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {
-
-        String id = request.getParameter("id");
-
-        Chart chart = chartMap.get(id);
-
-        response.setContentType("image/png");
-        ServletOutputStream out = response.getOutputStream();
-
-        try {
-            BitmapEncoder.streamPNG(out, chart);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        out.close();
-
-        chart = null;
-
-        chartMap.remove(id);
-    }
-
-    /**
-     * Generates a chart and puts it in chartMap
-     * 
-     * @return UUID uniquely identifying chart in the chartMap
-     */
-    public static String generateDummyChart() {
-
-        Chart chart = QuickChart.getChart("Sample Chart", "X", "Y", null, null, new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
-        String uuid = UUID.randomUUID().toString();
-        chartMap.put(uuid, chart);
-
-        return uuid;
-    }
-}
diff --git a/src/com/xeiam/xcharts/Axis.java b/src/main/java/com/xeiam/xchart/Axis.java
similarity index 95%
rename from src/com/xeiam/xcharts/Axis.java
rename to src/main/java/com/xeiam/xchart/Axis.java
index e9ffd04f3099d8fc021043d13601db3fb232ee21..7c3b926d0065bd074228427fe60d0c3ff0568fb5 100644
--- a/src/com/xeiam/xcharts/Axis.java
+++ b/src/main/java/com/xeiam/xchart/Axis.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.awt.font.FontRenderContext;
 import java.awt.font.TextLayout;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
 
 /**
  * Axis
diff --git a/src/com/xeiam/xcharts/AxisLine.java b/src/main/java/com/xeiam/xchart/AxisLine.java
similarity index 93%
rename from src/com/xeiam/xcharts/AxisLine.java
rename to src/main/java/com/xeiam/xchart/AxisLine.java
index ea08a18be2b3ac89e9d27c63e09a78bbffbc375b..6dc6bd939f7f63e03e53b8423f57cb46eb4326fb 100644
--- a/src/com/xeiam/xcharts/AxisLine.java
+++ b/src/main/java/com/xeiam/xchart/AxisLine.java
@@ -13,14 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * AxisLine
diff --git a/src/com/xeiam/xcharts/AxisPair.java b/src/main/java/com/xeiam/xchart/AxisPair.java
similarity index 97%
rename from src/com/xeiam/xcharts/AxisPair.java
rename to src/main/java/com/xeiam/xchart/AxisPair.java
index 28b8433617ef648066a41431e8880324f72a9b00..a673f0310aea1e62da3d6723555e9ba8bfdf09a4 100644
--- a/src/com/xeiam/xcharts/AxisPair.java
+++ b/src/main/java/com/xeiam/xchart/AxisPair.java
@@ -13,15 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
-import com.xeiam.xcharts.series.Series;
+import com.xeiam.xchart.interfaces.IChartPart;
+import com.xeiam.xchart.series.Series;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/AxisTick.java b/src/main/java/com/xeiam/xchart/AxisTick.java
similarity index 95%
rename from src/com/xeiam/xcharts/AxisTick.java
rename to src/main/java/com/xeiam/xchart/AxisTick.java
index 785de05a1b9b3c6f484b917ec7235a963720b6e9..5cbd4de1b41bb7b5067f34ab28f1c7331a0d6cb4 100644
--- a/src/com/xeiam/xcharts/AxisTick.java
+++ b/src/main/java/com/xeiam/xchart/AxisTick.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
@@ -23,7 +23,8 @@ import java.text.Format;
 import java.util.LinkedList;
 import java.util.List;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * An axis tick.
diff --git a/src/com/xeiam/xcharts/AxisTickLabels.java b/src/main/java/com/xeiam/xchart/AxisTickLabels.java
similarity index 94%
rename from src/com/xeiam/xcharts/AxisTickLabels.java
rename to src/main/java/com/xeiam/xchart/AxisTickLabels.java
index 0e63764c98ca148bc82e8a6449fb3e925a32e702..cb63a2567239cf7fb16d73389711c8509f7478fe 100644
--- a/src/com/xeiam/xcharts/AxisTickLabels.java
+++ b/src/main/java/com/xeiam/xchart/AxisTickLabels.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -22,7 +22,8 @@ import java.awt.Rectangle;
 import java.awt.font.FontRenderContext;
 import java.awt.font.TextLayout;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * Axis tick labels
diff --git a/src/com/xeiam/xcharts/AxisTickMarks.java b/src/main/java/com/xeiam/xchart/AxisTickMarks.java
similarity index 94%
rename from src/com/xeiam/xcharts/AxisTickMarks.java
rename to src/main/java/com/xeiam/xchart/AxisTickMarks.java
index e8c2f31c112c1624a7ec0bca628ce505b70179b3..4b58290b3d7dd0a8160b49769fb279ac8b026605 100644
--- a/src/com/xeiam/xcharts/AxisTickMarks.java
+++ b/src/main/java/com/xeiam/xchart/AxisTickMarks.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
@@ -21,7 +21,8 @@ import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.awt.Stroke;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * Axis tick marks.
diff --git a/src/com/xeiam/xcharts/AxisTitle.java b/src/main/java/com/xeiam/xchart/AxisTitle.java
similarity index 95%
rename from src/com/xeiam/xcharts/AxisTitle.java
rename to src/main/java/com/xeiam/xchart/AxisTitle.java
index 03de73ed6c87487ea7112ba58e90e4855d1a3951..1741c60776fc60214601a0c2ecb15b8569b30fa3 100644
--- a/src/com/xeiam/xcharts/AxisTitle.java
+++ b/src/main/java/com/xeiam/xchart/AxisTitle.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -23,7 +23,8 @@ import java.awt.font.FontRenderContext;
 import java.awt.font.TextLayout;
 import java.awt.geom.AffineTransform;
 
-import com.xeiam.xcharts.interfaces.IHideable;
+import com.xeiam.xchart.interfaces.IHideable;
+
 
 /**
  * AxisTitle
diff --git a/src/com/xeiam/xcharts/BitmapEncoder.java b/src/main/java/com/xeiam/xchart/BitmapEncoder.java
similarity index 98%
rename from src/com/xeiam/xcharts/BitmapEncoder.java
rename to src/main/java/com/xeiam/xchart/BitmapEncoder.java
index 4f99681b72fc42dd9d27f0660aef773dde80d0f6..1d8f1d9106b23dd4fe15efb40cfc48fca4333284 100644
--- a/src/com/xeiam/xcharts/BitmapEncoder.java
+++ b/src/main/java/com/xeiam/xchart/BitmapEncoder.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.image.BufferedImage;
diff --git a/src/com/xeiam/xcharts/Chart.java b/src/main/java/com/xeiam/xchart/Chart.java
similarity index 93%
rename from src/com/xeiam/xcharts/Chart.java
rename to src/main/java/com/xeiam/xchart/Chart.java
index b0f6c87eac6d0c46a9bce839f1a2a62f073aff60..01deae82023925c90a02a4ce0e2fcd5670fd91cb 100644
--- a/src/com/xeiam/xcharts/Chart.java
+++ b/src/main/java/com/xeiam/xchart/Chart.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.RenderingHints;
 
-import com.xeiam.xcharts.series.Series;
-import com.xeiam.xcharts.series.SeriesColor;
-import com.xeiam.xcharts.series.SeriesLineStyle;
-import com.xeiam.xcharts.series.SeriesMarker;
+import com.xeiam.xchart.series.Series;
+import com.xeiam.xchart.series.SeriesColor;
+import com.xeiam.xchart.series.SeriesLineStyle;
+import com.xeiam.xchart.series.SeriesMarker;
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/ChartColor.java b/src/main/java/com/xeiam/xchart/ChartColor.java
similarity index 97%
rename from src/com/xeiam/xcharts/ChartColor.java
rename to src/main/java/com/xeiam/xchart/ChartColor.java
index 7e582c6412625d16fca44925e826d728e9a78422..e5f61731ffab1bdf1b806057a8928c5b9d1f7ddd 100644
--- a/src/com/xeiam/xcharts/ChartColor.java
+++ b/src/main/java/com/xeiam/xchart/ChartColor.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Color;
 
diff --git a/src/com/xeiam/xcharts/ChartLegend.java b/src/main/java/com/xeiam/xchart/ChartLegend.java
similarity index 96%
rename from src/com/xeiam/xcharts/ChartLegend.java
rename to src/main/java/com/xeiam/xchart/ChartLegend.java
index c67c56733ad87bb099acbdc68ee00405b75a4d6d..a333fc27c96c8db6f1dd7da7ab50c9fe1fa8cfed 100644
--- a/src/com/xeiam/xcharts/ChartLegend.java
+++ b/src/main/java/com/xeiam/xchart/ChartLegend.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -23,9 +23,10 @@ import java.awt.font.FontRenderContext;
 import java.awt.font.TextLayout;
 import java.util.Map;
 
-import com.xeiam.xcharts.interfaces.IHideable;
-import com.xeiam.xcharts.series.Series;
-import com.xeiam.xcharts.series.markers.Marker;
+import com.xeiam.xchart.interfaces.IHideable;
+import com.xeiam.xchart.series.Series;
+import com.xeiam.xchart.series.markers.Marker;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/ChartTitle.java b/src/main/java/com/xeiam/xchart/ChartTitle.java
similarity index 93%
rename from src/com/xeiam/xcharts/ChartTitle.java
rename to src/main/java/com/xeiam/xchart/ChartTitle.java
index 8f2b8ad61de1165859505d6674068d8218ade0e5..59e2fa548da9a5ff99ffac24431868c91c42635f 100644
--- a/src/com/xeiam/xcharts/ChartTitle.java
+++ b/src/main/java/com/xeiam/xchart/ChartTitle.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -22,7 +22,8 @@ import java.awt.Rectangle;
 import java.awt.font.FontRenderContext;
 import java.awt.font.TextLayout;
 
-import com.xeiam.xcharts.interfaces.IHideable;
+import com.xeiam.xchart.interfaces.IHideable;
+
 
 /**
  * Chart Title
diff --git a/src/com/xeiam/xcharts/Plot.java b/src/main/java/com/xeiam/xchart/Plot.java
similarity index 96%
rename from src/com/xeiam/xcharts/Plot.java
rename to src/main/java/com/xeiam/xchart/Plot.java
index 129ce74994eb314bd5f105d6ea33ea3d1fcfef46..813b8d06335cd298073816a2370ebaf6ded52664 100644
--- a/src/com/xeiam/xcharts/Plot.java
+++ b/src/main/java/com/xeiam/xchart/Plot.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/PlotContent.java b/src/main/java/com/xeiam/xchart/PlotContent.java
similarity index 97%
rename from src/com/xeiam/xcharts/PlotContent.java
rename to src/main/java/com/xeiam/xchart/PlotContent.java
index 633c6955913707e59c3e99a9b807b65f9fa7bf66..7bcdd0e4962f24e082095a541d2d9eb9528e8c73 100644
--- a/src/com/xeiam/xcharts/PlotContent.java
+++ b/src/main/java/com/xeiam/xchart/PlotContent.java
@@ -13,14 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.util.Map;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
-import com.xeiam.xcharts.series.Series;
+import com.xeiam.xchart.interfaces.IChartPart;
+import com.xeiam.xchart.series.Series;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/PlotSurface.java b/src/main/java/com/xeiam/xchart/PlotSurface.java
similarity index 97%
rename from src/com/xeiam/xcharts/PlotSurface.java
rename to src/main/java/com/xeiam/xchart/PlotSurface.java
index f77b5076b4e5d51464f531fdce11df066567d8de..f041388f55ec33d31d224ac3b040da7ecb80f13b 100644
--- a/src/com/xeiam/xcharts/PlotSurface.java
+++ b/src/main/java/com/xeiam/xchart/PlotSurface.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
@@ -21,7 +21,8 @@ import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.util.List;
 
-import com.xeiam.xcharts.interfaces.IChartPart;
+import com.xeiam.xchart.interfaces.IChartPart;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/QuickChart.java b/src/main/java/com/xeiam/xchart/QuickChart.java
similarity index 94%
rename from src/com/xeiam/xcharts/QuickChart.java
rename to src/main/java/com/xeiam/xchart/QuickChart.java
index 84c76f3a9274c5a4e22d8c14db97bf0a3eaecfad..ff97a43fc9c643f7f8ba18feb5f54023ac171387 100644
--- a/src/com/xeiam/xcharts/QuickChart.java
+++ b/src/main/java/com/xeiam/xchart/QuickChart.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts;
+package com.xeiam.xchart;
 
-import com.xeiam.xcharts.series.Series;
-import com.xeiam.xcharts.series.SeriesMarker;
+import com.xeiam.xchart.series.Series;
+import com.xeiam.xchart.series.SeriesMarker;
 
 /**
  * A convenience class for making Charts with one line of code.
diff --git a/src/com/xeiam/xcharts/interfaces/IChartPart.java b/src/main/java/com/xeiam/xchart/interfaces/IChartPart.java
similarity index 95%
rename from src/com/xeiam/xcharts/interfaces/IChartPart.java
rename to src/main/java/com/xeiam/xchart/interfaces/IChartPart.java
index 0dc9d370b0646391c9070d930ab2791a18ac90c5..2b3024576d171d1306618c400e3240b2a35e760d 100644
--- a/src/com/xeiam/xcharts/interfaces/IChartPart.java
+++ b/src/main/java/com/xeiam/xchart/interfaces/IChartPart.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.interfaces;
+package com.xeiam.xchart.interfaces;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
diff --git a/src/com/xeiam/xcharts/interfaces/IHideable.java b/src/main/java/com/xeiam/xchart/interfaces/IHideable.java
similarity index 90%
rename from src/com/xeiam/xcharts/interfaces/IHideable.java
rename to src/main/java/com/xeiam/xchart/interfaces/IHideable.java
index 6890efa0fb4a1cc6f5d30635bfb19ed02756752f..2f68d6d2d65be0990a42918ff9d5ad560788298a 100644
--- a/src/com/xeiam/xcharts/interfaces/IHideable.java
+++ b/src/main/java/com/xeiam/xchart/interfaces/IHideable.java
@@ -4,7 +4,7 @@
  * This code is distributed under the terms of the Eclipse Public License v1.0
  * which is available at http://www.eclipse.org/legal/epl-v10.html
  *******************************************************************************/
-package com.xeiam.xcharts.interfaces;
+package com.xeiam.xchart.interfaces;
 
 /**
  * Chart Legend interface
diff --git a/src/com/xeiam/xcharts/series/Series.java b/src/main/java/com/xeiam/xchart/series/Series.java
similarity index 97%
rename from src/com/xeiam/xcharts/series/Series.java
rename to src/main/java/com/xeiam/xchart/series/Series.java
index 816174364350a5fb6f4155d8e70c18d7aab85c19..b02db36f2c7fb438213566f73de068484dfb5c75 100644
--- a/src/com/xeiam/xcharts/series/Series.java
+++ b/src/main/java/com/xeiam/xchart/series/Series.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series;
+package com.xeiam.xchart.series;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
 
-import com.xeiam.xcharts.series.markers.Marker;
+import com.xeiam.xchart.series.markers.Marker;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/series/SeriesColor.java b/src/main/java/com/xeiam/xchart/series/SeriesColor.java
similarity index 98%
rename from src/com/xeiam/xcharts/series/SeriesColor.java
rename to src/main/java/com/xeiam/xchart/series/SeriesColor.java
index ac058714b935c21991633b6ee1c224d9f9472b7b..dfe30859049b3e8a93bce4585cecc742bfe8f92c 100644
--- a/src/com/xeiam/xcharts/series/SeriesColor.java
+++ b/src/main/java/com/xeiam/xchart/series/SeriesColor.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series;
+package com.xeiam.xchart.series;
 
 import java.awt.Color;
 import java.util.EnumSet;
diff --git a/src/com/xeiam/xcharts/series/SeriesLineStyle.java b/src/main/java/com/xeiam/xchart/series/SeriesLineStyle.java
similarity index 98%
rename from src/com/xeiam/xcharts/series/SeriesLineStyle.java
rename to src/main/java/com/xeiam/xchart/series/SeriesLineStyle.java
index 3c1aabc7c14152d8ffc08363fee47454569e57b7..46d48afcf1160bdad6358f991ac43b49433770da 100644
--- a/src/com/xeiam/xcharts/series/SeriesLineStyle.java
+++ b/src/main/java/com/xeiam/xchart/series/SeriesLineStyle.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series;
+package com.xeiam.xchart.series;
 
 import java.awt.BasicStroke;
 import java.util.EnumSet;
diff --git a/src/com/xeiam/xcharts/series/SeriesMarker.java b/src/main/java/com/xeiam/xchart/series/SeriesMarker.java
similarity index 85%
rename from src/com/xeiam/xcharts/series/SeriesMarker.java
rename to src/main/java/com/xeiam/xchart/series/SeriesMarker.java
index 38b9e8d25c99564391b65b185a16b4a9ad9dc88d..9d8646b35fa2305f9840df0d8d280117faa48dec 100644
--- a/src/com/xeiam/xcharts/series/SeriesMarker.java
+++ b/src/main/java/com/xeiam/xchart/series/SeriesMarker.java
@@ -13,18 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series;
+package com.xeiam.xchart.series;
 
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.xeiam.xcharts.series.markers.Circle;
-import com.xeiam.xcharts.series.markers.Diamond;
-import com.xeiam.xcharts.series.markers.Marker;
-import com.xeiam.xcharts.series.markers.Square;
-import com.xeiam.xcharts.series.markers.TriangleDown;
-import com.xeiam.xcharts.series.markers.TriangleUp;
+import com.xeiam.xchart.series.markers.Circle;
+import com.xeiam.xchart.series.markers.Diamond;
+import com.xeiam.xchart.series.markers.Marker;
+import com.xeiam.xchart.series.markers.Square;
+import com.xeiam.xchart.series.markers.TriangleDown;
+import com.xeiam.xchart.series.markers.TriangleUp;
+
 
 /**
  * @author timmolter
diff --git a/src/com/xeiam/xcharts/series/markers/Circle.java b/src/main/java/com/xeiam/xchart/series/markers/Circle.java
similarity index 95%
rename from src/com/xeiam/xcharts/series/markers/Circle.java
rename to src/main/java/com/xeiam/xchart/series/markers/Circle.java
index a17cfd4792fca7cbe662ec7a01b4a645fbf3ea83..41abae6b6fe057c79a5133d48ebf953d946e07b2 100644
--- a/src/com/xeiam/xcharts/series/markers/Circle.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/Circle.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.Graphics2D;
 
diff --git a/src/com/xeiam/xcharts/series/markers/Diamond.java b/src/main/java/com/xeiam/xchart/series/markers/Diamond.java
similarity index 97%
rename from src/com/xeiam/xcharts/series/markers/Diamond.java
rename to src/main/java/com/xeiam/xchart/series/markers/Diamond.java
index 167eb5d8ce2f6345a1aaab24b3dd1ab8db8d1030..8a6004c9b1dde69e35c52435f471f618872c5328 100644
--- a/src/com/xeiam/xcharts/series/markers/Diamond.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/Diamond.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.Graphics2D;
 import java.awt.Polygon;
diff --git a/src/com/xeiam/xcharts/series/markers/Marker.java b/src/main/java/com/xeiam/xchart/series/markers/Marker.java
similarity index 96%
rename from src/com/xeiam/xcharts/series/markers/Marker.java
rename to src/main/java/com/xeiam/xchart/series/markers/Marker.java
index 5f6fd5ef41e5d946fa650481f98cd43927e17b1e..412d0a0b31ce5647956cd8a6f69caf57e7e0721f 100644
--- a/src/com/xeiam/xcharts/series/markers/Marker.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/Marker.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.BasicStroke;
 import java.awt.Graphics2D;
diff --git a/src/com/xeiam/xcharts/series/markers/Square.java b/src/main/java/com/xeiam/xchart/series/markers/Square.java
similarity index 95%
rename from src/com/xeiam/xcharts/series/markers/Square.java
rename to src/main/java/com/xeiam/xchart/series/markers/Square.java
index a63a03f5e52fe5b4911e5bc251506a78c2665301..136295c67d9e9cffaaa23a1235a88b31f70f5c8d 100644
--- a/src/com/xeiam/xcharts/series/markers/Square.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/Square.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
diff --git a/src/com/xeiam/xcharts/series/markers/TriangleDown.java b/src/main/java/com/xeiam/xchart/series/markers/TriangleDown.java
similarity index 96%
rename from src/com/xeiam/xcharts/series/markers/TriangleDown.java
rename to src/main/java/com/xeiam/xchart/series/markers/TriangleDown.java
index f792bc97eff84d08b8ff0452a402e88f6fec504c..8fb6d56a07b1ef6a81e76d2475e960f56519b958 100644
--- a/src/com/xeiam/xcharts/series/markers/TriangleDown.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/TriangleDown.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.Graphics2D;
 import java.awt.Polygon;
diff --git a/src/com/xeiam/xcharts/series/markers/TriangleUp.java b/src/main/java/com/xeiam/xchart/series/markers/TriangleUp.java
similarity index 96%
rename from src/com/xeiam/xcharts/series/markers/TriangleUp.java
rename to src/main/java/com/xeiam/xchart/series/markers/TriangleUp.java
index 8ac5a60e9879b73d4a7ac12d54c52391872e8855..3cb718a5b800ff8d5f43ed6cd73ec0a5812ecc85 100644
--- a/src/com/xeiam/xcharts/series/markers/TriangleUp.java
+++ b/src/main/java/com/xeiam/xchart/series/markers/TriangleUp.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xcharts.series.markers;
+package com.xeiam.xchart.series.markers;
 
 import java.awt.Graphics2D;
 import java.awt.Polygon;
diff --git a/src/com/xeiam/swing/SwingWrapper.java b/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
similarity index 98%
rename from src/com/xeiam/swing/SwingWrapper.java
rename to src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
index 99dbed8558c8e85a2417a739a7433fddabcd5607..11fa1e2606106fc41214937fb247dee831f0934d 100644
--- a/src/com/xeiam/swing/SwingWrapper.java
+++ b/src/main/java/com/xeiam/xchart/swing/SwingWrapper.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.swing;
+package com.xeiam.xchart.swing;
 
 import java.awt.Dimension;
 import java.awt.Graphics;
@@ -24,7 +24,8 @@ import javax.swing.BoxLayout;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 
-import com.xeiam.xcharts.Chart;
+import com.xeiam.xchart.Chart;
+
 
 /**
  * @author timmolter
diff --git a/src/test/java/com/xeiam/xchart/ChartServletExample.java b/src/test/java/com/xeiam/xchart/ChartServletExample.java
new file mode 100644
index 0000000000000000000000000000000000000000..883221ebb9aadaa3b5fba0841084ec4b8de09eb3
--- /dev/null
+++ b/src/test/java/com/xeiam/xchart/ChartServletExample.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright 2011 Xeiam LLC.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.xeiam.xchart;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Generates, stores, and serves charts
+ * 
+ * @author timmolter
+ */
+@javax.servlet.annotation.WebServlet(name = "ChartServlet", urlPatterns = { "/chart" }, asyncSupported = true)
+public class ChartServletExample extends HttpServlet {
+
+  private static Map<String, Chart> chartMap = new HashMap<String, Chart>();
+
+  @Override
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {
+
+    String id = request.getParameter("id");
+
+    Chart chart = chartMap.get(id);
+
+    response.setContentType("image/png");
+    ServletOutputStream out = response.getOutputStream();
+
+    try {
+      BitmapEncoder.streamPNG(out, chart);
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+
+    out.close();
+
+    chart = null;
+
+    chartMap.remove(id);
+  }
+
+  /**
+   * Generates a chart and puts it in chartMap
+   * 
+   * @return UUID uniquely identifying chart in the chartMap
+   */
+  public static String generateDummyChart() {
+
+    Chart chart = QuickChart.getChart("Sample Chart", "X", "Y", null, null, new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
+    String uuid = UUID.randomUUID().toString();
+    chartMap.put(uuid, chart);
+
+    return uuid;
+  }
+}
diff --git a/sample/com/xeiam/examples/Example1.java b/src/test/java/com/xeiam/xchart/Example1.java
similarity index 92%
rename from sample/com/xeiam/examples/Example1.java
rename to src/test/java/com/xeiam/xchart/Example1.java
index 439e88ac7e51292616ec0bad9a1b53b8cf971eaf..e9d06747ac17dee8e2b788510f8ab413ea2d4af9 100644
--- a/sample/com/xeiam/examples/Example1.java
+++ b/src/test/java/com/xeiam/xchart/Example1.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
 
-import com.xeiam.xcharts.BitmapEncoder;
-import com.xeiam.xcharts.Chart;
+import com.xeiam.xchart.BitmapEncoder;
+import com.xeiam.xchart.Chart;
 
 /**
  * Creates a simple charts and saves it as aPNG image file.
diff --git a/sample/com/xeiam/examples/Example2.java b/src/test/java/com/xeiam/xchart/Example2.java
similarity index 85%
rename from sample/com/xeiam/examples/Example2.java
rename to src/test/java/com/xeiam/xchart/Example2.java
index 035dfb93519b955e1cb5c73afb8124d489123706..12051cf4b87570492f4c7bf70f3f44333821a833 100644
--- a/sample/com/xeiam/examples/Example2.java
+++ b/src/test/java/com/xeiam/xchart/Example2.java
@@ -13,14 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
-
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.series.Series;
-import com.xeiam.xcharts.series.SeriesColor;
-import com.xeiam.xcharts.series.SeriesLineStyle;
-import com.xeiam.xcharts.series.SeriesMarker;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.series.Series;
+import com.xeiam.xchart.series.SeriesColor;
+import com.xeiam.xchart.series.SeriesLineStyle;
+import com.xeiam.xchart.series.SeriesMarker;
+import com.xeiam.xchart.swing.SwingWrapper;
+
 
 /**
  * Embed a Chart in a simple Swing application
diff --git a/sample/com/xeiam/examples/Example3.java b/src/test/java/com/xeiam/xchart/Example3.java
similarity index 93%
rename from sample/com/xeiam/examples/Example3.java
rename to src/test/java/com/xeiam/xchart/Example3.java
index 7ec3b343d458b84f263b56bcc3d75ca62ac333c2..a8b398d82f836e7e6ab7eac12793951af7c3ff40 100644
--- a/sample/com/xeiam/examples/Example3.java
+++ b/src/test/java/com/xeiam/xchart/Example3.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.swing.SwingWrapper;
 
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
 
 /**
  * Create multiple curves on one chart
diff --git a/sample/com/xeiam/examples/Example4.java b/src/test/java/com/xeiam/xchart/Example4.java
similarity index 91%
rename from sample/com/xeiam/examples/Example4.java
rename to src/test/java/com/xeiam/xchart/Example4.java
index 7e713a16bd5fb30eecf79adcd232cbd1a0db07a5..a1a9e180ad22a0d8b2172bb10220538168d92af0 100644
--- a/sample/com/xeiam/examples/Example4.java
+++ b/src/test/java/com/xeiam/xchart/Example4.java
@@ -13,11 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.QuickChart;
+import com.xeiam.xchart.swing.SwingWrapper;
 
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.QuickChart;
 
 /**
  * Create a chart matrix
diff --git a/sample/com/xeiam/examples/Example5.java b/src/test/java/com/xeiam/xchart/Example5.java
similarity index 92%
rename from sample/com/xeiam/examples/Example5.java
rename to src/test/java/com/xeiam/xchart/Example5.java
index e1e6440ab134fbf1cb94be24c807df23fe739ef3..1bb733cb2321ac7be10a7fbc05b52f037bc7a1a0 100644
--- a/sample/com/xeiam/examples/Example5.java
+++ b/src/test/java/com/xeiam/xchart/Example5.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.swing.SwingWrapper;
 
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
 
 /**
  * Plot vertical and horizontal lines
diff --git a/sample/com/xeiam/examples/Example6.java b/src/test/java/com/xeiam/xchart/Example6.java
similarity index 91%
rename from sample/com/xeiam/examples/Example6.java
rename to src/test/java/com/xeiam/xchart/Example6.java
index 6936b7acd44ecd98ab6dcb26325cda27777f4c8a..a76ca9d1df4c059619eb894ee961ef962359c83f 100644
--- a/sample/com/xeiam/examples/Example6.java
+++ b/src/test/java/com/xeiam/xchart/Example6.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.swing.SwingWrapper;
 
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
 
 /**
  * Create chart with single point
diff --git a/sample/com/xeiam/examples/Example7.java b/src/test/java/com/xeiam/xchart/Example7.java
similarity index 91%
rename from sample/com/xeiam/examples/Example7.java
rename to src/test/java/com/xeiam/xchart/Example7.java
index 82917b704a677b63b1e53cd14bffdc5a9c79d009..368b31f9054bd07ed936d06edfa074869c55b30a 100644
--- a/sample/com/xeiam/examples/Example7.java
+++ b/src/test/java/com/xeiam/xchart/Example7.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.examples;
+package com.xeiam.xchart;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.swing.SwingWrapper;
 
-import com.xeiam.swing.SwingWrapper;
-import com.xeiam.xcharts.Chart;
 
 /**
  * Create chart with NaN values