Enhanced cell & cells tools.
Provided initial sketch of the Annotated concept for the model attributes.
diff --git a/core/api/src/main/java/org/onlab/onos/net/AbstractModel.java b/core/api/src/main/java/org/onlab/onos/net/AbstractModel.java
index 8c25cda..cbafad9 100644
--- a/core/api/src/main/java/org/onlab/onos/net/AbstractModel.java
+++ b/core/api/src/main/java/org/onlab/onos/net/AbstractModel.java
@@ -1,14 +1,22 @@
 package org.onlab.onos.net;
 
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
 import org.onlab.onos.net.provider.ProviderId;
 
+import java.util.Map;
+import java.util.Set;
+
 /**
  * Base implementation of a network model entity.
  */
-public class AbstractModel implements Provided {
+public class AbstractModel implements Provided, Annotated {
 
     private final ProviderId providerId;
 
+    // FIXME: figure out whether to make this concurrent or immutable
+    private final Map<String, String> annotations = Maps.newHashMap();
+
     // For serialization
     public AbstractModel() {
         providerId = null;
@@ -28,4 +36,13 @@
         return providerId;
     }
 
+    @Override
+    public Set<String> annotationKeys() {
+        return ImmutableSet.copyOf(annotations.keySet());
+    }
+
+    @Override
+    public String annotation(String key) {
+        return annotations.get(key);
+    }
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/Annotated.java b/core/api/src/main/java/org/onlab/onos/net/Annotated.java
new file mode 100644
index 0000000..f68cd46
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/Annotated.java
@@ -0,0 +1,25 @@
+package org.onlab.onos.net;
+
+import java.util.Set;
+
+/**
+ * Represents an entity that carries arbitrary annotations.
+ */
+public interface Annotated {
+
+    /**
+     * Returns the set of annotation keys currently available.
+     *
+     * @return set of annotation keys
+     */
+    Set<String> annotationKeys();
+
+    /**
+     * Returns the annotation value for the specified key.
+     *
+     * @param key annotation key
+     * @return annotation value; null if there is no annotation
+     */
+    String annotation(String key);
+
+}
diff --git a/tools/build/onos-test b/tools/build/onos-test
index 1eb8edb..ecf549b 100755
--- a/tools/build/onos-test
+++ b/tools/build/onos-test
@@ -9,5 +9,9 @@
 nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2)
 
 onos-package
-for node in $nodes; do (printf "%s: %s\n" "$node" "`onos-install -f $node`")& done
+for node in $nodes; do onos-install -f $node 1>/dev/null & done
+
+# Wait for shutdown before waiting for restart
+sleep 3
+
 for node in $nodes; do onos-wait-for-start $node; done
diff --git a/tools/dev/bash_profile b/tools/dev/bash_profile
index 1d3097f..8332a47 100644
--- a/tools/dev/bash_profile
+++ b/tools/dev/bash_profile
@@ -57,6 +57,7 @@
     if [ -n "$1" ]; then
         [ ! -f $ONOS_ROOT/tools/test/cells/$1 ] && \
             echo "No such cell: $1" >&2 && return 1
+        unset OC1 OC2 OC3 OC4 OC5 OC6 OC7 OC8 OC9 OCN OCI
         . $ONOS_ROOT/tools/test/cells/$1
         export OCI=$OC1
         export ONOS_CELL=$1
@@ -74,7 +75,11 @@
 
 # Lists available cells
 function cells {
-    ls -1 $ONOS_ROOT/tools/test/cells
+    for cell in $(ls -1 $ONOS_ROOT/tools/test/cells); do
+        printf "%-12s  %s\n" \
+            "$([ $cell = $ONOS_CELL ] && echo $cell '*' || echo $cell)" \
+            "$(grep '^#' $ONOS_ROOT/tools/test/cells/$cell | head -n 1)"
+    done
 }
 
 # Miscellaneous
diff --git a/tools/test/cells/.reset b/tools/test/cells/.reset
deleted file mode 100644
index 5b1bc2c..0000000
--- a/tools/test/cells/.reset
+++ /dev/null
@@ -1 +0,0 @@
-unset OC1 OC2 OC3 OC4 OC5 OC6 OC7 OC8 OC9 OCN ONOS_NIC ONOS_FEATURES
diff --git a/tools/test/cells/local b/tools/test/cells/local
index 6b9fea5..b535934 100644
--- a/tools/test/cells/local
+++ b/tools/test/cells/local
@@ -1,8 +1,6 @@
-# Default virtual box ONOS instances 1,2 & ONOS mininet box
-. $ONOS_ROOT/tools/test/cells/.reset
+# Local VirtualBox-based ONOS instances 1,2 & ONOS mininet box
 
 export ONOS_NIC=192.168.56.*
-
 export OC1="192.168.56.101"
 export OC2="192.168.56.102"
 
diff --git a/tools/test/cells/office b/tools/test/cells/office
index 6053ec8..acedac2 100644
--- a/tools/test/cells/office
+++ b/tools/test/cells/office
@@ -1,9 +1,7 @@
-# ProxMox-based cell of ONOS instances 1,2 & ONOS mininet box
-. $ONOS_ROOT/tools/test/cells/.reset
+# ProxMox-based cell of ONOS instance; no mininet-box
 
 export ONOS_FEATURES="webconsole,onos-api,onos-core-trivial,onos-cli,onos-openflow,onos-app-fwd,onos-app-mobility,onos-app-tvue"
 
 export ONOS_NIC="10.128.4.*"
-
 export OC1="10.128.4.60"
 
diff --git a/tools/test/cells/prox b/tools/test/cells/prox
index 3fa1279..1731eb8 100644
--- a/tools/test/cells/prox
+++ b/tools/test/cells/prox
@@ -1,8 +1,6 @@
 # ProxMox-based cell of ONOS instances 1,2 & ONOS mininet box
-. $ONOS_ROOT/tools/test/cells/.reset
 
 export ONOS_NIC="10.1.9.*"
-
 export OC1="10.1.9.94"
 export OC2="10.1.9.82"
 
diff --git a/tools/test/cells/single b/tools/test/cells/single
new file mode 100644
index 0000000..bc969f3
--- /dev/null
+++ b/tools/test/cells/single
@@ -0,0 +1,6 @@
+# Local VirtualBox-based single ONOS instance & ONOS mininet box
+
+export ONOS_NIC=192.168.56.*
+export OC1="192.168.56.101"
+export OCN="192.168.56.103"
+
diff --git a/tools/test/cells/three b/tools/test/cells/three
deleted file mode 100644
index 38c934b..0000000
--- a/tools/test/cells/three
+++ /dev/null
@@ -1,12 +0,0 @@
-# Default virtual box ONOS instances 1,2 & ONOS mininet box
-
-export ONOS_NIC=192.168.56.*
-
-export ONOS_FEATURES="webconsole,onos-api,onos-core-trivial,onos-cli,onos-rest,onos-gui,onos-openflow,onos-app-fwd,onos-app-foo"
-
-export OC1="192.168.56.101"
-export OC2="192.168.56.102"
-export OC3="192.168.56.104"
-
-export OCN="192.168.56.103"
-
diff --git a/tools/test/cells/tom b/tools/test/cells/tom
deleted file mode 100644
index 2eb0523..0000000
--- a/tools/test/cells/tom
+++ /dev/null
@@ -1,10 +0,0 @@
-# Default virtual box ONOS instances 1,2 & ONOS mininet box
-
-export ONOS_NIC=192.168.56.*
-
-export OC1="192.168.56.11"
-export OC2="192.168.56.12"
-
-export OCN="192.168.56.7"
-
-
diff --git a/tools/test/cells/triple b/tools/test/cells/triple
new file mode 100644
index 0000000..baae31a
--- /dev/null
+++ b/tools/test/cells/triple
@@ -0,0 +1,9 @@
+# Local VirtualBox-based ONOS instances 1,2,3 & ONOS mininet box
+
+export ONOS_NIC=192.168.56.*
+export OC1="192.168.56.101"
+export OC2="192.168.56.102"
+export OC3="192.168.56.104"
+
+export OCN="192.168.56.103"
+