diff --git a/pom.xml b/pom.xml
index 7bb0d648b507bca6035b0b3e9a9156df50b309fc..b9d74aa776424807054b6a4b872fc04a6b690ff9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,6 +95,7 @@
                     <mainClass>com.syncleus.aparapi.examples.All</mainClass>
                     <arguments>
                         <argument>com.syncleus.aparapi.executionMode=GPU</argument>
+                        <argument>com.syncleus.aparapi.enableShowGeneratedOpenCL=true</argument>
                     </arguments>
                 </configuration>
             </plugin>
diff --git a/samples/convolution/.gitignore b/samples/convolution/.gitignore
deleted file mode 100644
index 840e7d3120ee3206168d49bf62df2c269c38e17e..0000000000000000000000000000000000000000
--- a/samples/convolution/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/classes/
diff --git a/samples/convolution/.project b/samples/convolution/.project
deleted file mode 100644
index a304e12fe2c740acb75674e6ccb285155ddf2c2a..0000000000000000000000000000000000000000
--- a/samples/convolution/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>convolution</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/samples/convolution/build.xml b/samples/convolution/build.xml
deleted file mode 100644
index aa4db3c095653dcc2ad9df5441a3f856a6454266..0000000000000000000000000000000000000000
--- a/samples/convolution/build.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="convolution" default="build" basedir=".">
-
-	<!-- Ideally this would be the latest version of Java but not everyone is going to have it installed -->
-	<!-- Additionally we want to avoid "Class not found: javac1.8" errors from old Ant versions (i.e. Eclipse) -->
-	<property name="build.compiler" value="javac1.7" />
-	<property name="ant.build.javac.source" value="1.7" />
-	<property name="ant.build.javac.target" value="1.7" />
-
-	<path id="compiler.class.path">
-		<pathelement path="../../com.syncleus.aparapi/dist/aparapi.jar" />
-	</path>
-
-	<path id="runtime.class.path" cache="true">
-		<path refid="compiler.class.path" />
-		<pathelement path="${ant.project.name}.jar" />
-	</path>
-
-	<target name="build" depends="clean">
-		<mkdir dir="classes" />
-		<javac srcdir="src" destdir="classes" debug="on" includeantruntime="false">
-			<classpath>
-				<pathelement path="../../com.syncleus.aparapi/dist/aparapi.jar" />
-			</classpath>
-		</javac>
-		<copy file="src\com\amd\aparapi\sample\convolution\convolution.cl" toDir="classes\com\amd\aparapi\sample\convolution" />
-		<jar jarfile="${ant.project.name}.jar" basedir="classes" />
-	</target>
-
-	<target name="clean">
-		<delete dir="classes" />
-		<delete file="${ant.project.name}.jar" />
-	</target>
-
-	<target name="run-jtp">
-		<java classname="com.syncleus.aparapi.sample.convolution.Convolution" fork="true">
-			<classpath refid="runtime.class.path" />
-			<sysproperty key="java.library.path" path="..\..\com.syncleus.aparapi.jni\dist" />
-			<sysproperty key="com.syncleus.aparapi.executionMode" value="JTP" />
-		</java>
-	</target>
-
-	<target name="run-gpu">
-		<java classname="com.syncleus.aparapi.sample.convolution.Convolution" fork="true">
-			<classpath refid="runtime.class.path" />
-			<sysproperty key="java.library.path" path="..\..\com.syncleus.aparapi.jni\dist" />
-			<sysproperty key="com.syncleus.aparapi.executionMode" value="GPU" />
-		</java>
-	</target>
-
-	<target name="run" depends="run-gpu" />
-
-</project>
diff --git a/samples/convolution/conv.bat b/samples/convolution/conv.bat
deleted file mode 100644
index 0374609617cc0f98aa2418feb50374430df0ae6d..0000000000000000000000000000000000000000
--- a/samples/convolution/conv.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-java ^
- -Djava.library.path=../../com.syncleus.aparapi.jni/dist ^
- -Dcom.syncleus.aparapi.executionMode=%1 ^
- -Dcom.syncleus.aparapi.enableShowGeneratedOpenCL=true ^
- -classpath ../../com.syncleus.aparapi/dist/aparapi.jar;convolution.jar ^
- com.syncleus.aparapi.sample.convolution.Convolution %2
-
diff --git a/samples/convolution/conv.sh b/samples/convolution/conv.sh
deleted file mode 100644
index 4fa3539f3bc6b546fdfbecd251c84e162429025f..0000000000000000000000000000000000000000
--- a/samples/convolution/conv.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-java \
-  -Djava.library.path=../../com.syncleus.aparapi.jni/dist\
-  -Dcom.syncleus.aparapi.executionMode=$1\
-  -Dcom.syncleus.aparapi.enableShowGeneratedOpenCL=true\
-  -classpath ../../com.syncleus.aparapi/dist/aparapi.jar:convolution.jar\
-  com.syncleus.aparapi.sample.convolution.Convolution $2
diff --git a/samples/convolution/opencl.bat b/samples/convolution/opencl.bat
deleted file mode 100644
index afd39d52cf20bb56627189d97affee442a3341d6..0000000000000000000000000000000000000000
--- a/samples/convolution/opencl.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-java ^
- -Djava.library.path=../../com.syncleus.aparapi.jni/dist ^
- -Dcom.syncleus.aparapi.executionMode=%1 ^
- -classpath ../../com.syncleus.aparapi/dist/aparapi.jar;convolution.jar ^
- com.syncleus.aparapi.sample.convolution.ConvolutionOpenCL %2
-
diff --git a/samples/convolution/pureJava.bat b/samples/convolution/pureJava.bat
deleted file mode 100644
index df2fb0fab17f8bb74e1454c70c50a0f112047aa7..0000000000000000000000000000000000000000
--- a/samples/convolution/pureJava.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-java ^
- -Djava.library.path=../../com.syncleus.aparapi.jni/dist ^
- -Dcom.syncleus.aparapi.executionMode=%1 ^
- -classpath ../../com.syncleus.aparapi/dist/aparapi.jar;convolution.jar ^
- com.syncleus.aparapi.sample.convolution.PureJava %2
-
diff --git a/src/main/java/com/syncleus/aparapi/examples/All.java b/src/main/java/com/syncleus/aparapi/examples/All.java
index 4628fa2cf5da2ff168136e6cd49873f84e0ad187..4df4625b3dfcf47098eec33d638f9608c329cf6c 100644
--- a/src/main/java/com/syncleus/aparapi/examples/All.java
+++ b/src/main/java/com/syncleus/aparapi/examples/All.java
@@ -13,11 +13,14 @@ package com.syncleus.aparapi.examples;
 import java.util.Scanner;
 
 public class All {
-    public static void main(String[] _args) {
+    public static void main(String[] _args) throws Exception {
         System.out.println("Select which example to run:");
         System.out.println("  1) Game of Life");
         System.out.println("  2) Mandelbrot");
         System.out.println("  3) Mandlebrot 2D");
+        System.out.println("  4) Convolution");
+        System.out.println("  5) Convolution (OpenCL)");
+        System.out.println("  6) Convolution (pure Java)");
         System.out.println();
 
         Scanner in = new Scanner(System.in);
@@ -28,7 +31,7 @@ public class All {
             if( in.hasNextLine() )
             {
                 String line = in.nextLine();
-                running = selected(line);
+                running = selected(line, _args);
                 System.out.println();
             }
             else
@@ -41,7 +44,7 @@ public class All {
         }
     }
 
-    private static boolean selected(String line)
+    private static boolean selected(String line, String[] args) throws Exception
     {
         if( line.toUpperCase().equals("Q") )
            return false;
@@ -49,13 +52,22 @@ public class All {
         switch(line)
         {
             case "1":
-                com.syncleus.aparapi.examples.life.Main.main(null);
+                com.syncleus.aparapi.examples.life.Main.main(args);
                 break;
             case "2":
-                com.syncleus.aparapi.examples.mandel.Main.main(null);
+                com.syncleus.aparapi.examples.mandel.Main.main(args);
                 break;
             case "3":
-                com.syncleus.aparapi.examples.mandel.Main2D.main(null);
+                com.syncleus.aparapi.examples.mandel.Main2D.main(args);
+                break;
+            case "4":
+                com.syncleus.aparapi.examples.convolution.Convolution.main(args);
+                break;
+            case "5":
+                com.syncleus.aparapi.examples.convolution.ConvolutionOpenCL.main(args);
+                break;
+            case "6":
+                com.syncleus.aparapi.examples.convolution.PureJava.main(args);
                 break;
             default:
                 System.out.println("Invalid selection.");
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvMatrix3x3Editor.java
similarity index 91%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java
rename to src/main/java/com/syncleus/aparapi/examples/convolution/ConvMatrix3x3Editor.java
index 75d4ea227889fd83e9604d691bae58c7205c04a1..39a225047fd6748635c3df8ab3dc902711ad494b 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java
+++ b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvMatrix3x3Editor.java
@@ -1,3 +1,13 @@
+/**
+ * This product currently only contains code developed by authors
+ * of specific components, as identified by the source code files.
+ *
+ * Since product implements StAX API, it has dependencies to StAX API
+ * classes.
+ *
+ * For additional credits (generally to people who reported problems)
+ * see CREDITS file.
+ */
 /*
 Copyright (c) 2010-2011, Advanced Micro Devices, Inc.
 All rights reserved.
@@ -36,7 +46,7 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 
 */
 
-package com.syncleus.aparapi.sample.convolution;
+package com.syncleus.aparapi.examples.convolution;
 
 import java.awt.BorderLayout;
 import java.awt.Component;
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java b/src/main/java/com/syncleus/aparapi/examples/convolution/Convolution.java
similarity index 90%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java
rename to src/main/java/com/syncleus/aparapi/examples/convolution/Convolution.java
index 6452b2456a7da04f60dcd9e3ba19884043fe12bf..4e8a7f5266f7f210d59bc2189e6d818c4d7c6fe7 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java
+++ b/src/main/java/com/syncleus/aparapi/examples/convolution/Convolution.java
@@ -1,3 +1,13 @@
+/**
+ * This product currently only contains code developed by authors
+ * of specific components, as identified by the source code files.
+ *
+ * Since product implements StAX API, it has dependencies to StAX API
+ * classes.
+ *
+ * For additional credits (generally to people who reported problems)
+ * see CREDITS file.
+ */
 /*
 Copyright (c) 2010-2011, Advanced Micro Devices, Inc.
 All rights reserved.
@@ -36,7 +46,7 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 
  */
 
-package com.syncleus.aparapi.sample.convolution;
+package com.syncleus.aparapi.examples.convolution;
 
 import com.syncleus.aparapi.*;
 
@@ -46,7 +56,7 @@ public class Convolution {
 
     public static void main(final String[] _args) throws IOException {
 
-        final File file = new File(_args.length == 1 ? _args[0] : "./samples/convolution/testcard.jpg").getCanonicalFile();
+        final File file = new File(_args.length == 1 ? _args[0] : "./src/main/resources/testcard.jpg").getCanonicalFile();
 
         final ImageConvolution convolution = new ImageConvolution();
 
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionOpenCL.java
similarity index 87%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java
rename to src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionOpenCL.java
index aad33f9e4ab36da6014f9cb5a6f4e34396a3aacd..e611395dbd979236f43d3552c0d6c889f71f7cfd 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java
+++ b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionOpenCL.java
@@ -1,3 +1,13 @@
+/**
+ * This product currently only contains code developed by authors
+ * of specific components, as identified by the source code files.
+ *
+ * Since product implements StAX API, it has dependencies to StAX API
+ * classes.
+ *
+ * For additional credits (generally to people who reported problems)
+ * see CREDITS file.
+ */
 /*
 Copyright (c) 2010-2011, Advanced Micro Devices, Inc.
 All rights reserved.
@@ -36,7 +46,7 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 
 */
 
-package com.syncleus.aparapi.sample.convolution;
+package com.syncleus.aparapi.examples.convolution;
 
 import com.syncleus.aparapi.*;
 import com.syncleus.aparapi.device.*;
@@ -48,7 +58,7 @@ import java.io.*;
 
 public class ConvolutionOpenCL{
 
-   @Resource("com/amd/aparapi/sample/convolution/convolution.cl") interface Convolution extends OpenCL<Convolution>{
+   @Resource("com/syncleus/aparapi/examples/convolution/convolution.cl") interface Convolution extends OpenCL<Convolution>{
       Convolution applyConvolution(//
             Range range, //
             @GlobalReadOnly("_convMatrix3x3") float[] _convMatrix3x3,//// only read from kernel 
@@ -59,7 +69,7 @@ public class ConvolutionOpenCL{
    }
 
    public static void main(final String[] _args) {
-      final File file = new File(_args.length == 1 ? _args[0] : "testcard.jpg");
+      final File file = new File(_args.length == 1 ? _args[0] : "./src/main/resources/testcard.jpg");
 
       final OpenCLDevice openclDevice = (OpenCLDevice) KernelManager.instance().bestDevice();
 
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionViewer.java
similarity index 91%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java
rename to src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionViewer.java
index 00d7d3e1e9936f804a4377488a4dcd02a41a67a2..c5773344fa82f2e8146af1e8fd94f37a6c21e4fe 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java
+++ b/src/main/java/com/syncleus/aparapi/examples/convolution/ConvolutionViewer.java
@@ -1,3 +1,13 @@
+/**
+ * This product currently only contains code developed by authors
+ * of specific components, as identified by the source code files.
+ *
+ * Since product implements StAX API, it has dependencies to StAX API
+ * classes.
+ *
+ * For additional credits (generally to people who reported problems)
+ * see CREDITS file.
+ */
 /*
 Copyright (c) 2010-2011, Advanced Micro Devices, Inc.
 All rights reserved.
@@ -36,7 +46,7 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 
 */
 
-package com.syncleus.aparapi.sample.convolution;
+package com.syncleus.aparapi.examples.convolution;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java b/src/main/java/com/syncleus/aparapi/examples/convolution/PureJava.java
similarity index 88%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java
rename to src/main/java/com/syncleus/aparapi/examples/convolution/PureJava.java
index 7439a51cde7471a256fff050998a3dffb32734a8..4ac820fb466899725d7770b263fc416eb50dc274 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java
+++ b/src/main/java/com/syncleus/aparapi/examples/convolution/PureJava.java
@@ -1,3 +1,13 @@
+/**
+ * This product currently only contains code developed by authors
+ * of specific components, as identified by the source code files.
+ *
+ * Since product implements StAX API, it has dependencies to StAX API
+ * classes.
+ *
+ * For additional credits (generally to people who reported problems)
+ * see CREDITS file.
+ */
 /*
 Copyright (c) 2010-2011, Advanced Micro Devices, Inc.
 All rights reserved.
@@ -36,7 +46,7 @@ under those regulations, please refer to the U.S. Bureau of Industry and Securit
 
 */
 
-package com.syncleus.aparapi.sample.convolution;
+package com.syncleus.aparapi.examples.convolution;
 
 import java.io.File;
 
@@ -89,7 +99,7 @@ public class PureJava{
    }
 
    public static void main(final String[] _args) {
-      File file = new File(_args.length == 1 ? _args[0] : "testcard.jpg");
+      File file = new File(_args.length == 1 ? _args[0] : "./src/main/resources/testcard.jpg");
 
       final ImageConvolution convolution = new ImageConvolution();
 
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/convolution.cl b/src/main/java/com/syncleus/aparapi/examples/convolution/convolution.cl
similarity index 100%
rename from samples/convolution/src/com/amd/aparapi/sample/convolution/convolution.cl
rename to src/main/java/com/syncleus/aparapi/examples/convolution/convolution.cl
diff --git a/samples/convolution/knight.png b/src/main/resources/knight.png
similarity index 100%
rename from samples/convolution/knight.png
rename to src/main/resources/knight.png
diff --git a/samples/convolution/testcard.jpg b/src/main/resources/testcard.jpg
similarity index 100%
rename from samples/convolution/testcard.jpg
rename to src/main/resources/testcard.jpg