diff --git a/jdbc-tutorial/pom.xml b/jdbc-tutorial/pom.xml
index 2a41757..ef9a4df 100644
--- a/jdbc-tutorial/pom.xml
+++ b/jdbc-tutorial/pom.xml
@@ -2,7 +2,7 @@
 	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>
 
-	<groupId>com.supwisdom</groupId>
+	<groupId>com.supwisdom.tutorial</groupId>
 	<artifactId>jdbc-tutorial</artifactId>
 	<version>1.0-SNAPSHOT</version>
 	<packaging>jar</packaging>
@@ -14,6 +14,20 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
+	<distributionManagement>
+		<repository>
+			<id>ekingstar-releases</id>
+			<name>internal release</name>
+			<url>http://app.supwisdom.com:81/artifactory/libs-release-local</url>
+		</repository>
+		<snapshotRepository>
+			<id>ekingstar-snapshots</id>
+			<name>internal Snapshots</name>
+			<url>http://app.supwisdom.com:81/artifactory/libs-snapshot-local</url>
+		</snapshotRepository>
+		<downloadUrl>http://app.supwisdom.com:81/artifactory</downloadUrl>
+	</distributionManagement>
+
 	<dependencies>
 		<dependency>
 			<groupId>junit</groupId>
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/BatchUpdate.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/BatchUpdate.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/BatchUpdate.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/BatchUpdate.java
index 8c9e106..e15487d 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/BatchUpdate.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/BatchUpdate.java
@@ -1,4 +1,4 @@
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 /*
  * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
@@ -6,7 +6,8 @@
  * http://developer.java.sun.com/berkeley_license.html.
  */
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class BatchUpdate {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateCoffees.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateCoffees.java
similarity index 91%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateCoffees.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateCoffees.java
index 2aa46c0..8d73ce4 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateCoffees.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateCoffees.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateCoffees {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewTable.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewTable.java
similarity index 98%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewTable.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewTable.java
index 114d1c8..d1e3d3b 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewTable.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewTable.java
@@ -3,11 +3,12 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
 import java.util.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateNewTable {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewType.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewType.java
similarity index 98%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewType.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewType.java
index 23b3746..9515442 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateNewType.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateNewType.java
@@ -3,11 +3,12 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
 import java.util.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateNewType {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateRef.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateRef.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateRef.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateRef.java
index 45036cc..b7035de 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateRef.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateRef.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateRef {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateStores.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateStores.java
similarity index 92%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateStores.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateStores.java
index bd504a3..fd00334 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateStores.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateStores.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateStores {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateSuppliers.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateSuppliers.java
similarity index 91%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateSuppliers.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateSuppliers.java
index b5c15e3..49b73b7 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateSuppliers.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateSuppliers.java
@@ -3,11 +3,12 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.net.URL;
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateSuppliers {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateUDTs.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateUDTs.java
similarity index 93%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateUDTs.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateUDTs.java
index cdfdce7..16f5a4f 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/CreateUDTs.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/CreateUDTs.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class CreateUDTs {
   public static void main(String args[]) {
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/DataType.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DataType.java
similarity index 95%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/DataType.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DataType.java
index f795d56..5f8e0aa 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/DataType.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DataType.java
@@ -3,7 +3,7 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 public class DataType {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/App.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DbSettings.java
similarity index 78%
rename from jdbc-tutorial/src/main/java/com/supwisdom/App.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DbSettings.java
index 6cc4735..1260758 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/App.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/DbSettings.java
@@ -1,7 +1,7 @@
-package com.supwisdom;
+package com.supwisdom.tutorial.jdbc;
 
 
-public class App {
+public class DbSettings {
   
   public static final String JDBC_DRIVER = "org.h2.Driver";
   public static final String JDBC_URL = "jdbc:h2:tcp://localhost/test";
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ForeignKeysCoffees.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ForeignKeysCoffees.java
similarity index 95%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ForeignKeysCoffees.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ForeignKeysCoffees.java
index 886bd00..3f49250 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ForeignKeysCoffees.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ForeignKeysCoffees.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class ForeignKeysCoffees {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/GetParamMetaData.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/GetParamMetaData.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/GetParamMetaData.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/GetParamMetaData.java
index 9db7100..403e182 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/GetParamMetaData.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/GetParamMetaData.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class GetParamMetaData {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertCoffees.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertCoffees.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertCoffees.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertCoffees.java
index b3735e4..87d7bfb 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertCoffees.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertCoffees.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class InsertCoffees {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRow.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRow.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRow.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRow.java
index 579075e..8b0a38a 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRow.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRow.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class InsertRow {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRows.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRows.java
similarity index 95%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRows.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRows.java
index 1d14c3a..4e65f8a 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertRows.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertRows.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class InsertRows {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertStores.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertStores.java
similarity index 97%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertStores.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertStores.java
index cd9d99f..c94355b 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertStores.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertStores.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class InsertStores {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertSuppliers.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertSuppliers.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertSuppliers.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertSuppliers.java
index 1c2eaaa..0cb6cb1 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/InsertSuppliers.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/InsertSuppliers.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class InsertSuppliers {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/Join.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/Join.java
similarity index 93%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/Join.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/Join.java
index 8fe63e6..9f23ab3 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/Join.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/Join.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class Join {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/OutputApplet.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/OutputApplet.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/OutputApplet.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/OutputApplet.java
index d6a4d75..6f3f4b2 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/OutputApplet.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/OutputApplet.java
@@ -8,7 +8,7 @@
  * This is a demonstration JDBC applet.
  * It displays some simple standard output from the Coffee database.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.applet.Applet;
 import java.awt.Graphics;
@@ -19,7 +19,8 @@
 import java.sql.Statement;
 import java.util.Enumeration;
 import java.util.Vector;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class OutputApplet extends Applet implements Runnable {
   private Thread worker;
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrimaryKeysSuppliers.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrimaryKeysSuppliers.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrimaryKeysSuppliers.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrimaryKeysSuppliers.java
index 12b2413..a052cc0 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrimaryKeysSuppliers.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrimaryKeysSuppliers.java
@@ -3,9 +3,10 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */ 
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 public class PrimaryKeysSuppliers  {
 
 	public static void main(String args[]) {
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumnTypes.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumnTypes.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumnTypes.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumnTypes.java
index 28a55c7..477cb2b 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumnTypes.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumnTypes.java
@@ -3,7 +3,7 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumns.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumns.java
similarity index 93%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumns.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumns.java
index bf54d47..61b156f 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/PrintColumns.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/PrintColumns.java
@@ -3,9 +3,10 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */ 
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 class PrintColumns  {
 
 	public static void main(String args[]) {
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/README b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/README
similarity index 100%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/README
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/README
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/RSMetaDataMethods.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/RSMetaDataMethods.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/RSMetaDataMethods.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/RSMetaDataMethods.java
index b276fa1..212a91a 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/RSMetaDataMethods.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/RSMetaDataMethods.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class RSMetaDataMethods {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SQLStatement.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SQLStatement.java
similarity index 93%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SQLStatement.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SQLStatement.java
index 7987cfc..cd3f631 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SQLStatement.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SQLStatement.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class SQLStatement {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ScrollableResultSet.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ScrollableResultSet.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ScrollableResultSet.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ScrollableResultSet.java
index 8e4f60e..942d8ec 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/ScrollableResultSet.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/ScrollableResultSet.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class ScrollableResultSet {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SetSavepoint.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SetSavepoint.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SetSavepoint.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SetSavepoint.java
index 861ea44..f6bf549 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/SetSavepoint.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/SetSavepoint.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class SetSavepoint {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TableTypes.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TableTypes.java
similarity index 92%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TableTypes.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TableTypes.java
index f6afacf..d9a3d22 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TableTypes.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TableTypes.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class TableTypes {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TransactionPairs.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TransactionPairs.java
similarity index 96%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TransactionPairs.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TransactionPairs.java
index 3631989..6bcba60 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TransactionPairs.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TransactionPairs.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class TransactionPairs {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeConcurrency.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeConcurrency.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeConcurrency.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeConcurrency.java
index 2c908d3..a226e06 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeConcurrency.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeConcurrency.java
@@ -3,10 +3,11 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class TypeConcurrency {
 
diff --git a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeInfo.java b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeInfo.java
similarity index 94%
rename from jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeInfo.java
rename to jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeInfo.java
index 1da79b7..9482904 100644
--- a/jdbc-tutorial/src/main/java/com/supwisdom/jdbc/TypeInfo.java
+++ b/jdbc-tutorial/src/main/java/com/supwisdom/tutorial/jdbc/TypeInfo.java
@@ -3,11 +3,12 @@
  * Use of this software is authorized pursuant to the terms of the license found at
  * http://developer.java.sun.com/berkeley_license.html.
  */
-package com.supwisdom.jdbc;
+package com.supwisdom.tutorial.jdbc;
 
 import java.net.URL;
 import java.sql.*;
-import static com.supwisdom.App.*;
+
+import static com.supwisdom.tutorial.jdbc.DbSettings.*;
 
 public class TypeInfo {
 
diff --git a/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java b/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java
deleted file mode 100644
index 3d41cae..0000000
--- a/jdbc-tutorial/src/test/java/com/supwisdom/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.supwisdom;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public AppTest( String testName )
-    {
-        super( testName );
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( AppTest.class );
-    }
-
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
-}
