diff --git a/README.md b/README.md
index 61d5c00..8adbc78 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
 
 Then, change to a new directory and run 
 
-`mvn archetype:generate -DarchetypeGroupId=org.apache.accumulo -DarchetypeArtifactId=instamo-archetype`
+`mvn archetype:generate -DarchetypeGroupId=org.apache.accumulo -DarchetypeArtifactId=instamo-archetype -DinteractiveMode=false`
 
 Maven will prompt you to enter the rest of the necessary configuration
 parameters (e.g. groupId, artifactId, version and Java package)
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml
index 594bd9f..6f37215 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -24,13 +24,13 @@
       <defaultValue>org.apache.accumulo.instamo</defaultValue>
     </requiredProperty>
     <requiredProperty key="artifactId">
-      <defaultValue>instamo-example</defaultValue>
+      <defaultValue>instamo</defaultValue>
     </requiredProperty>
     <requiredProperty key="version">
       <defaultValue>1.0-SNAPSHOT</defaultValue>
     </requiredProperty>
     <requiredProperty key="package">
-      <defaultValue>instamo.example</defaultValue>
+      <defaultValue>instamo</defaultValue>
     </requiredProperty>
   </requiredProperties>
 
diff --git a/src/main/resources/archetype-resources/README.md b/src/main/resources/archetype-resources/README.md
index 686203b..929c382 100644
--- a/src/main/resources/archetype-resources/README.md
+++ b/src/main/resources/archetype-resources/README.md
@@ -10,11 +10,12 @@
 installed by following the steps below.
 
 ```
-vim src/main/java/${package}/AccumuloApp.java
+vim src/test/java/${package}/ExampleAccumuloUnitTest.java
 mvn package
 ```
 
-After packing the code, you can run one of the below applications.
+The maven package command will run the unit test.  After packing the code, you
+can also run one of the below applications.
 
 Map Reduce
 ----------
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
index 5f8da0f..1fb7cf2 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -87,7 +87,7 @@
               <arguments>
                   <argument>-classpath</argument>
                   <classpath />
-                  <argument>instamo.example.ShellExample</argument>
+                  <argument>${package}.ShellExample</argument>
               </arguments>
               </configuration>
           </plugin>
diff --git a/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java b/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java
deleted file mode 100644
index 192ebe2..0000000
--- a/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java
+++ /dev/null
@@ -1,61 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 ${package};
-
-import java.util.Map.Entry;
-
-import org.apache.accumulo.core.Constants;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.BatchWriterConfig;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.ZooKeeperInstance;
-import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-
-public class AccumuloApp {
-  
-  public static void run(String instanceName, String zookeepers, AuthenticationToken token, String args[]) throws Exception {
-    // edit this method to play with Accumulo
-
-    Instance instance = new ZooKeeperInstance(instanceName, zookeepers);
-    
-    Connector conn = instance.getConnector("root", token);
-    
-    conn.tableOperations().create("foo");
-    
-    BatchWriter bw = conn.createBatchWriter("foo", new BatchWriterConfig());
-    Mutation m = new Mutation("r1");
-    m.put("cf1", "cq1", "v1");
-    m.put("cf1", "cq2", "v3");
-    bw.addMutation(m);
-    bw.close();
-    
-    Scanner scanner = conn.createScanner("foo", Constants.NO_AUTHS);
-    for (Entry<Key,Value> entry : scanner) {
-      System.out.println(entry.getKey() + " " + entry.getValue());
-    }
-    
-    conn.tableOperations().delete("foo");
-  }
-}
diff --git a/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java b/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
index 10dee5d..0550888 100644
--- a/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
+++ b/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
@@ -19,8 +19,21 @@
  */
 package ${package};
 
+import java.util.Map.Entry;
+
+import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.BatchWriterConfig;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.Instance;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
 import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -49,7 +62,54 @@
 
   @Test(timeout = 30000)
   public void test() throws Exception {
-    AccumuloApp.run(accumulo.getInstanceName(), accumulo.getZooKeepers(), new PasswordToken("superSecret"), new String[0]);
+    // edit this method to play with Accumulo
+
+    Instance instance = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZooKeepers());
+    
+    Connector conn = instance.getConnector("root", new PasswordToken("superSecret"));
+    
+    conn.tableOperations().create("foo");
+    
+    BatchWriter bw = conn.createBatchWriter("foo", new BatchWriterConfig());
+    Mutation m = new Mutation("1234");
+    m.put("name", "first", "Alice");
+    m.put("friend", "5678", "");
+    m.put("enemy", "5555", "");
+    m.put("enemy", "9999", "");
+    bw.addMutation(m);
+
+    m = new Mutation("5678");
+    m.put("name", "first", "Bob");
+    m.put("friend", "1234", "");
+    m.put("enemy", "5555", "");
+    m.put("enemy", "9999", "");
+    bw.addMutation(m);
+
+    m = new Mutation("9999");
+    m.put("name", "first", "Eve");
+    m.put("friend", "5555", "");
+    m.put("enemy", "1234", "");
+    m.put("enemy", "5678", "");
+    bw.addMutation(m);
+
+    m = new Mutation("5555");
+    m.put("name", "first", "Mallory");
+    m.put("friend", "9999", "");
+    m.put("enemy", "1234", "");
+    m.put("enemy", "5678", "");
+    bw.addMutation(m);
+
+    bw.close();
+    
+    Scanner scanner = conn.createScanner("foo", Constants.NO_AUTHS);
+    for (Entry<Key,Value> entry : scanner) {
+      System.out.println(entry.getKey() + " " + entry.getValue());
+    }
+   
+    //TODO use scanner to find common enemie ids between Alice and Bob, then
+    //use BatchScanner to look up their names
+ 
+    conn.tableOperations().delete("foo");
   }
   
   @AfterClass
@@ -57,5 +117,4 @@
     accumulo.stop();
     folder.delete();
   }
-  
 }
