diff --git a/.gitignore b/.gitignore
index 9fbfd4e..88f7bb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
 onos.log
 repo
 logback.*.xml
+
diff --git a/README.md b/README.md
index cbe9097..e7efbe1 100644
--- a/README.md
+++ b/README.md
@@ -18,10 +18,6 @@
 Building ONOS
 -------------
 
-0. Install custom jars and dependencies (needs to be run only once)
-
-        $ ./setup-local-maven.sh
-
 1. Cleanly build ONOS
 
         $ mvn clean
@@ -30,8 +26,8 @@
     NOTE: installing maven for the first time may switch java version
     from 1.7 to 1.6. This might prevent Cassandra to run.
 
-Dependencies
-------------
+External Dependencies
+---------------------
 1. Zookeeper
 
     Download and install apache-zookeeper-3.4.5:
@@ -112,6 +108,20 @@
         $ ./start-rest.sh status
 
 
+Developping ONOS in offline environment (Optional)
+---------------------------------------------------------------------------
+
+Maven need the Internet connection to download required dependencies and plugins,
+when they're used for the first time.
+
+If you need to develop ONOS in an Internet unreachable environment
+you may want to run the following helper script before you go offline,
+so that required dependencies and plugins for frequently used maven target will be
+downloaded to your local environment.
+
+        $ ./prep-for-offline.sh
+
+
 Running in offline mode (Optional)
 ----------------------------------
 
diff --git a/pom.xml b/pom.xml
index d1cdc6e..ce582d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,6 +11,12 @@
   <name>ONOS-RAMCloud</name>
   <url>http://onlab.us/</url>
   <repositories>
+    <!-- In Project repository -->
+    <repository>
+      <id>in-project</id>
+      <name>In Project Repo</name>
+      <url>file://${project.basedir}/repo</url>
+    </repository>
     <repository>
       <id>central</id>
       <name>Maven Central repository</name>
@@ -21,12 +27,6 @@
       <name>Public online Restlet repository</name>
       <url>http://maven.restlet.org</url>
     </repository>
-    <!-- In Project repository -->
-    <repository>
-      <id>in-project</id>
-      <name>In Project Repo</name>
-      <url>file://${project.basedir}/repo</url>
-    </repository>
   </repositories>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -267,6 +267,10 @@
     </plugins>
   </reporting>
   <dependencies>
+    <!-- Commenting out original kryo 2.X
+         and using shaded version (net.onrc.onos.kryo2)
+         to workaround conflict with kryo 1.X in titan's dependency.(#443)
+    -->
     <!--
     <dependency>
       <groupId>com.esotericsoftware.kryo</groupId>
diff --git a/prep-for-offline.sh b/prep-for-offline.sh
new file mode 100755
index 0000000..8be464f
--- /dev/null
+++ b/prep-for-offline.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+#
+# A helper script to download all the dependencies beforehand, rather than
+# Maven lazily downloading them when they're needed.
+#
+
+if [ -z "${MVN}" ]; then
+    MVN="mvn"
+fi
+
+# download package dependencies
+${MVN} -T 1C dependency:go-offline
+
+# run goals to download required plugins
+${MVN} -T 1C checkstyle:checkstyle
+${MVN} -q -T 1C clean test -Dtest=DoNotTest -DfailIfNoTests=false > /dev/null
+${MVN} -T 1C compile
diff --git a/rebuild-local-repo.sh b/rebuild-local-repo.sh
new file mode 100755
index 0000000..4ea1fbf
--- /dev/null
+++ b/rebuild-local-repo.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+#
+# A helper script to update the modified local copy of "curator" or the "kryo2"
+# version.
+#
+# NOTE: This script is useful only for developers.
+# Usage:
+#  1. Update the "curator" jar file or the "kryo2" pom.xml file as appropriate.
+#  2. Run this script.
+#  3. Push the modified repo/ directory to the source code repository.
+#
+
+if [ -z "${MVN}" ]; then
+    MVN="mvn"
+fi
+
+# Install Kryo2 workaround to local repo
+# - Shaded(rename package name to allow mixing 2 different Kryo version)
+# - Install created sharded jar to local repo
+${MVN} -f kryo2/pom.xml package exec:exec
+
+# Install modified curators to local repo
+${MVN} install:install-file -Dfile=./curator/curator-framework-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-framework -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repo -DcreateChecksum=true
+${MVN} install:install-file -Dfile=./curator/curator-client-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-client -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repo -DcreateChecksum=true
+${MVN} install:install-file -Dfile=./curator/curator-recipes-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-recipes -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repo -DcreateChecksum=true
+${MVN} install:install-file -Dfile=./curator/curator-x-discovery-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-x-discovery -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repo -DcreateChecksum=true
+
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar
new file mode 100644
index 0000000..c22d602
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar
Binary files differ
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.md5 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.md5
new file mode 100644
index 0000000..2ace2a5
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.md5
@@ -0,0 +1 @@
+3746ec5212bdbb9140850c14f4451a0a
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.sha1 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.sha1
new file mode 100644
index 0000000..d05e228
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.jar.sha1
@@ -0,0 +1 @@
+c59b35b37dc560ee16199d5dde2eac727d84df4f
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom
new file mode 100644
index 0000000..b5dcb31
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-client</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <description>POM was created from install:install-file</description>
+</project>
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.md5 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.md5
new file mode 100644
index 0000000..eff6265
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.md5
@@ -0,0 +1 @@
+5fb6875fb1d6c621bece5d60ad23320c
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.sha1 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.sha1
new file mode 100644
index 0000000..1a61d7c
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/curator-client-1.3.5-SNAPSHOT.pom.sha1
@@ -0,0 +1 @@
+a242a50033f0ccb0eaf3fe33d804d583d35242c3
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml
new file mode 100644
index 0000000..5c72507
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-client</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <localCopy>true</localCopy>
+    </snapshot>
+    <lastUpdated>20140102175421</lastUpdated>
+    <snapshotVersions>
+      <snapshotVersion>
+        <extension>jar</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175421</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>pom</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175421</updated>
+      </snapshotVersion>
+    </snapshotVersions>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..88e6b32
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+c18e768aaa00a69df8707c52999ece23
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..f7bbb41
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+4c1a4c050f9dfa58e2c06357292a68cc4db6c153
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/maven-metadata-local.xml b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml
new file mode 100644
index 0000000..601cdb2
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-client</artifactId>
+  <versioning>
+    <versions>
+      <version>1.3.5-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20140102175421</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..e9772e0
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+81f0d8335cac788422454e1f404024b5
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..015f48f
--- /dev/null
+++ b/repo/com/netflix/curator/curator-client/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+d4b4e3e335da0916395576e68f60183a8c614bde
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar
new file mode 100644
index 0000000..1b89270
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar
Binary files differ
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.md5 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.md5
new file mode 100644
index 0000000..526cb88
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.md5
@@ -0,0 +1 @@
+837ffcfa86d11a2049d05d710c07bb4e
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.sha1 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.sha1
new file mode 100644
index 0000000..aecf353
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.jar.sha1
@@ -0,0 +1 @@
+6ed887c7b72b142b72a8043218ba900673a3c83e
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom
new file mode 100644
index 0000000..84f098f
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-framework</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <description>POM was created from install:install-file</description>
+</project>
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.md5 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.md5
new file mode 100644
index 0000000..cf9798c
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.md5
@@ -0,0 +1 @@
+f05dc58d60323b5b06c09d14dc435886
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.sha1 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.sha1
new file mode 100644
index 0000000..0895d5c
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/curator-framework-1.3.5-SNAPSHOT.pom.sha1
@@ -0,0 +1 @@
+6750549cf7f567ed3d0a13d0e98d3c32f2c6860d
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml
new file mode 100644
index 0000000..575d4c6
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-framework</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <localCopy>true</localCopy>
+    </snapshot>
+    <lastUpdated>20140102175420</lastUpdated>
+    <snapshotVersions>
+      <snapshotVersion>
+        <extension>jar</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175420</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>pom</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175420</updated>
+      </snapshotVersion>
+    </snapshotVersions>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..91a0276
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+ad227a30712055f5ce428b2698626e8c
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..e195786
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+1094337510f3b3c0f4e7daebc584e00fea388570
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml
new file mode 100644
index 0000000..c0850b6
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-framework</artifactId>
+  <versioning>
+    <versions>
+      <version>1.3.5-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20140102175420</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..e6e4b37
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+1ffcf4d9101ad330411364ae043e014d
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..11491ff
--- /dev/null
+++ b/repo/com/netflix/curator/curator-framework/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+9d49a343907e558388584483f987d279714ffcc1
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar
new file mode 100644
index 0000000..30efe51
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar
Binary files differ
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.md5 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.md5
new file mode 100644
index 0000000..2932cbd
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.md5
@@ -0,0 +1 @@
+a14fe0e16945c674b55c4e42635d1ae9
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.sha1 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.sha1
new file mode 100644
index 0000000..41613f9
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.jar.sha1
@@ -0,0 +1 @@
+bd80a054cf18f037bd297b77566028e46c1056a9
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom
new file mode 100644
index 0000000..198deba
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-recipes</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <description>POM was created from install:install-file</description>
+</project>
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.md5 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.md5
new file mode 100644
index 0000000..262bab7
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.md5
@@ -0,0 +1 @@
+b1ba9c9fb1147e4b8edafecd6c60954f
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.sha1 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.sha1
new file mode 100644
index 0000000..a75ea0c
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/curator-recipes-1.3.5-SNAPSHOT.pom.sha1
@@ -0,0 +1 @@
+1729fd8fcb7a6252004eadc49aae0ddc436374c3
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml
new file mode 100644
index 0000000..982743d
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-recipes</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <localCopy>true</localCopy>
+    </snapshot>
+    <lastUpdated>20140102175423</lastUpdated>
+    <snapshotVersions>
+      <snapshotVersion>
+        <extension>jar</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175423</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>pom</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175423</updated>
+      </snapshotVersion>
+    </snapshotVersions>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..8eedc9b
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+50c512f43275d8025c64db161237902f
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..4eb06cf
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+c43e204325a14bd04b1421c294e21ba3d4c844c7
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml
new file mode 100644
index 0000000..c7018a0
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-recipes</artifactId>
+  <versioning>
+    <versions>
+      <version>1.3.5-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20140102175423</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..88b4161
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+e21acd4765fda10d42252072e7b478f9
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..393d68d
--- /dev/null
+++ b/repo/com/netflix/curator/curator-recipes/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+77b6ed5d47f571d3ba252620fe14a76504eb85a5
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar
new file mode 100644
index 0000000..147417e
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar
Binary files differ
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.md5 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.md5
new file mode 100644
index 0000000..3025108
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.md5
@@ -0,0 +1 @@
+f0aadef06641b7da6dab0f17a03c10b5
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.sha1 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.sha1
new file mode 100644
index 0000000..d08e236
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.jar.sha1
@@ -0,0 +1 @@
+1d1e79e81ac6f042a647e50fef6730a91e9281af
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom
new file mode 100644
index 0000000..af57ce1
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-x-discovery</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <description>POM was created from install:install-file</description>
+</project>
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.md5 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.md5
new file mode 100644
index 0000000..72e09b8
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.md5
@@ -0,0 +1 @@
+672c8a21ef3629f6910ed0077b112f1c
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.sha1 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.sha1
new file mode 100644
index 0000000..b8c733f
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/curator-x-discovery-1.3.5-SNAPSHOT.pom.sha1
@@ -0,0 +1 @@
+2c939a080e7dd43af4022310d3fac75191a393f5
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml
new file mode 100644
index 0000000..c3766b7
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-x-discovery</artifactId>
+  <version>1.3.5-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <localCopy>true</localCopy>
+    </snapshot>
+    <lastUpdated>20140102175425</lastUpdated>
+    <snapshotVersions>
+      <snapshotVersion>
+        <extension>jar</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175425</updated>
+      </snapshotVersion>
+      <snapshotVersion>
+        <extension>pom</extension>
+        <value>1.3.5-SNAPSHOT</value>
+        <updated>20140102175425</updated>
+      </snapshotVersion>
+    </snapshotVersions>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..5efd07d
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+bf828c8b78fcbf02d658c214a8146bd6
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..7a4e3bf
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/1.3.5-SNAPSHOT/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+4a9f4761ac5f12f448f48bc8f08a2c098dd5435c
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml
new file mode 100644
index 0000000..37c9551
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>com.netflix.curator</groupId>
+  <artifactId>curator-x-discovery</artifactId>
+  <versioning>
+    <versions>
+      <version>1.3.5-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20140102175425</lastUpdated>
+  </versioning>
+</metadata>
diff --git a/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.md5 b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.md5
new file mode 100644
index 0000000..247854b
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.md5
@@ -0,0 +1 @@
+a719466f9f7df932f5a0727156fec652
\ No newline at end of file
diff --git a/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.sha1 b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.sha1
new file mode 100644
index 0000000..3bc27f7
--- /dev/null
+++ b/repo/com/netflix/curator/curator-x-discovery/maven-metadata-local.xml.sha1
@@ -0,0 +1 @@
+e4d0f45d5a5d60836ee6eea43e937995464c1b8a
\ No newline at end of file
diff --git a/setup-local-maven.sh b/setup-local-maven.sh
deleted file mode 100755
index f8e00f8..0000000
--- a/setup-local-maven.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-if [ -z "${MVN}" ]; then
-    MVN="mvn"
-fi
-
-# Kryo2 workaround
-${MVN} -f kryo2/pom.xml package exec:exec
-
-${MVN} install:install-file -Dfile=./curator/curator-framework-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-framework -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true
-${MVN} install:install-file -Dfile=./curator/curator-client-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-client -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true
-${MVN} install:install-file -Dfile=./curator/curator-recipes-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-recipes -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true
-${MVN} install:install-file -Dfile=./curator/curator-x-discovery-1.3.5-SNAPSHOT.jar -DgroupId=com.netflix.curator -DartifactId=curator-x-discovery -Dversion=1.3.5-SNAPSHOT -Dpackaging=jar -DgeneratePom=true
-
-# download package dependencies
-${MVN} dependency:go-offline
-
-# run goals to download required plugins
-${MVN} -q test -Dtest=DoNotTest -DfailIfNoTests=false > /dev/null
-${MVN} clean compile
diff --git a/src/main/java/net/onrc/onos/datagrid/web/GetMapResource.java b/src/main/java/net/onrc/onos/datagrid/web/GetMapResource.java
index 8c8e1cd..6a56b2f 100644
--- a/src/main/java/net/onrc/onos/datagrid/web/GetMapResource.java
+++ b/src/main/java/net/onrc/onos/datagrid/web/GetMapResource.java
@@ -47,7 +47,7 @@
 	// Extract the arguments
 	String mapNameStr = (String)getRequestAttributes().get("map-name");
 
-	log.debug("Get Datagrid Map: " + mapNameStr);
+	log.debug("Get Datagrid Map: {}", mapNameStr);
 
 	//
 	// Get the Flows
diff --git a/src/main/java/net/onrc/onos/graph/GraphDBConnection.java b/src/main/java/net/onrc/onos/graph/GraphDBConnection.java
index bf30297..16869c5 100644
--- a/src/main/java/net/onrc/onos/graph/GraphDBConnection.java
+++ b/src/main/java/net/onrc/onos/graph/GraphDBConnection.java
@@ -33,6 +33,7 @@
 			.getLogger(GraphDBConnection.class);
 	private static GraphDBConnection singleton = new GraphDBConnection();
 	private static TitanGraph graph;
+	private static FramedGraph<TitanGraph> fg;
 	private static EventTransactionalGraph<TitanGraph> eg;
 	private static String configFile;
 
@@ -85,6 +86,7 @@
 				graph.createKeyIndex("ipv4_address", Vertex.class);
 			}
 			graph.commit();
+			fg = new FramedGraph<TitanGraph>(graph);
 			eg = new EventTransactionalGraph<TitanGraph>(graph);
 		}
 		return singleton;
@@ -95,13 +97,7 @@
 	 */
 	@Override
 	public FramedGraph<TitanGraph> getFramedGraph() {
-		if (isValid()) {
-			FramedGraph<TitanGraph> fg = new FramedGraph<TitanGraph>(graph);
-			return fg;
-		} else {
-			log.error("new FramedGraph failed");
-			return null;
-		}
+		return fg;
 	}
 
 	/**
@@ -136,11 +132,11 @@
 
 	/**
 	 * Commit changes for the graph operations.
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	@Override
 	public void commit() {
-//		// Should not catch exception here! 
+//		// Should not catch exception here!
 //		try {
 			graph.commit();
 //		}
@@ -154,7 +150,7 @@
 	 */
 	@Override
 	public void rollback() {
-		// Should not catch exception here! 
+		// Should not catch exception here!
 //		try {
 			graph.rollback();
 //		}
@@ -171,7 +167,7 @@
 		try {
 			commit();
 		} catch (Exception e) {
-			log.error("{}", e.toString());
+			log.error("close() failed with exception", e);
 		}
 	}
 }
diff --git a/src/main/java/net/onrc/onos/graph/LocalTopologyEventListener.java b/src/main/java/net/onrc/onos/graph/LocalTopologyEventListener.java
index 2778b55..80a6338 100644
--- a/src/main/java/net/onrc/onos/graph/LocalTopologyEventListener.java
+++ b/src/main/java/net/onrc/onos/graph/LocalTopologyEventListener.java
@@ -39,7 +39,7 @@
 		// TODO Auto-generated method stub
 		// Fire NetMapEvents (LinkRemoved, FlowEntryRemoved, HostRemoved, PortRemoved)
 		TitanEdge edge = (TitanEdge) e;
-		log.debug("TopologyEvents: Received edge removed event: {}",edge.toString());
+		log.debug("TopologyEvents: Received edge removed event: {}",edge);
 		String label = edge.getLabel();
 		if (label.equals("link")) {
 			Vertex v = edge.getVertex(Direction.IN);
@@ -76,7 +76,7 @@
 		// TODO Auto-generated method stub
 		// Generate NetMapEvents 
 		String type = (String) vertex.getProperty("type");
-		log.debug("TopologyEvents: Received vertex removed event: {}",vertex.toString());
+		log.debug("TopologyEvents: Received vertex removed event: {}",vertex);
 		if (type.equals("port")) {
 			// port is removed...lets fire reconcile here directly for now
 			
diff --git a/src/main/java/net/onrc/onos/ofcontroller/bgproute/PatriciaTrie.java b/src/main/java/net/onrc/onos/ofcontroller/bgproute/PatriciaTrie.java
index 89dfb30..67458e3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/bgproute/PatriciaTrie.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/bgproute/PatriciaTrie.java
@@ -17,16 +17,16 @@
 
 	@Override
 	public synchronized V put(Prefix prefix, V value) {
+		if (prefix == null || value == null) {
+			throw new NullPointerException();
+		}
+		
 		if (prefix.getPrefixLength() > maxPrefixLength) {
 			throw new IllegalArgumentException(String.format(
 					"Prefix length %d is greater than max prefix length %d", 
 					prefix.getPrefixLength(), maxPrefixLength));
 		}
 		
-		if (prefix == null || value == null) {
-			throw new NullPointerException();
-		}
-		
 		Node node = top;
 		Node match = null;
 		
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
index e915614..6130218 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
@@ -245,8 +245,8 @@
 					port.setDevice(obj);  
 				}
 
-				log.debug("port number is {}", port.getNumber().toString());
-				log.debug("port desc is {}", port.getDesc());  
+				log.debug("port number is {}", port.getNumber());
+				log.debug("port desc is {}", port.getDesc());
 			}
 		}      		 
 
@@ -345,9 +345,11 @@
 		IPortObject portObject1 = ope.searchPort(HexString.toHexString(
 				onosDevice.getSwitchDPID()), onosDevice.getSwitchPort());
 
-		if (portObject1.getLinkedPorts().iterator().hasNext()) {
-			log.debug("stop adding OnosDevice: {} due to there is a link to: {}",
-					onosDevice, portObject1.getLinkedPorts().iterator().next().getPortId());
+		if ((portObject1 != null) && portObject1.getLinkedPorts().iterator().hasNext()) {
+			if (log.isDebugEnabled()) {
+				log.debug("stop adding OnosDevice: {} due to there is a link to: {}",
+						onosDevice, portObject1.getLinkedPorts().iterator().next().getPortId());
+			}
 			return;
 		}
 		
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
index 19098b9..f53a38b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
@@ -511,13 +511,13 @@
 	 	vportDst = dbop.searchPort(dpid, port);
 	 	
 		// FIXME: This needs to remove all edges
-	 	if (vportSrc != null && vportDst != null) {
-	 		vportSrc.removeLink(vportDst);
-	    	log.debug("deleteLinkImpl(): deleted edges src {} dst {}", new Object[]{
-	    			lt, vportSrc, vportDst});
-	    	success = true;
-	    }
-	    
-	 	return success;
+		if (vportSrc != null && vportDst != null) {
+			vportSrc.removeLink(vportDst);
+			log.debug("deleteLinkImpl(): deleted edge {} src {} dst {}", new Object[]{
+				lt, vportSrc, vportDst});
+			success = true;
+		}
+
+		return success;
 	}
 }
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
index 019637d..598b89b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
@@ -230,7 +230,7 @@
 			success = true;
 		} catch (Exception e) {
 			op.rollback();
-			log.error("SwitchStorage:addSwitch dpid:{} failed", dpid, e);
+			log.error("SwitchStorage:addSwitch dpid:"+dpid+" failed", e);
 		}
 
 		return success;
@@ -263,7 +263,7 @@
 		} catch (Exception e) {
 			op.rollback();
 			e.printStackTrace();
-			log.error("SwitchStorage:addSwitch dpid:{} failed", dpid, e);
+			log.error("SwitchStorage:addSwitch dpid:"+dpid+" failed", e);
 		}
 
 		return success;
@@ -314,7 +314,7 @@
 		} catch (Exception e) {
 			// TODO what type of exception is thrown when we can't commit?
 			op.rollback();
-			log.error("SwitchStorage:deactivateSwitch {} failed", dpid, e);
+			log.error("SwitchStorage:deactivateSwitch "+dpid+" failed", e);
 		}
 
 		return success;
@@ -468,7 +468,7 @@
 		if (sw != null && state != null) {
 			sw.setState(state.toString());
 			log.info("SwitchStorage:setSwitchStateImpl dpid:{} updated {}",
-					sw.getDPID(), state.toString());
+					sw.getDPID(), state);
 		}
 	}
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
index 3337cf8..456b69c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
@@ -57,7 +57,7 @@
 					      ILinkDiscoveryListener,
 					      IFloodlightModule,
 					      INetworkGraphService {
-	
+
 	protected IDeviceStorage devStore;
 	protected ISwitchStorage swStore;
 	protected ILinkStorage linkStore;
@@ -71,19 +71,21 @@
 	protected static final String CleanupEnabled = "EnableCleanup";
 	protected IThreadPoolService threadPool;
 	protected IFloodlightProviderService floodlightProvider;
-	
+
 	protected final int CLEANUP_TASK_INTERVAL = 60; // 1 min
 	protected SingletonTask cleanupTask;
 	protected ILinkDiscoveryService linkDiscovery;
 
 	protected IDatagridService datagridService;
-	
-	/**
+
+    /**
      *  Cleanup and synch switch state from registry
      */
     protected class SwitchCleanup implements ControlChangeCallback, Runnable {
         @Override
         public void run() {
+            String old = Thread.currentThread().getName();
+            Thread.currentThread().setName("SwitchCleanup@" + old);
             try {
             	log.debug("Running cleanup thread");
 		op = GraphDBManager.getDBOperation("ramcloud", "/tmp/ramcloudconf");
@@ -95,6 +97,7 @@
             	op.close();
                     cleanupTask.reschedule(CLEANUP_TASK_INTERVAL,
                                               TimeUnit.SECONDS);
+                Thread.currentThread().setName(old);
             }
         }
 
@@ -114,7 +117,7 @@
 					//if (swStore.updateSwitch(HexString.toHexString(dpid), SwitchState.INACTIVE, DM_OPERATION.UPDATE)) {
 					if (swStore.deactivateSwitch(HexString.toHexString(dpid))) {
 					    registryService.releaseControl(dpid);
-					    
+
 					    // TODO publish UPDATE_SWITCH event here
 					    //
 					    // NOTE: Here we explicitly send
@@ -144,14 +147,14 @@
 				} catch (Exception e) {
 	                log.error("Error in SwitchCleanup:controlChanged ", e);
 				}
-			}						
+			}
 		}
     }
 
     protected void switchCleanup() {
     	//op.close();
     	Iterable<ISwitchObject> switches = op.getActiveSwitches();
-    	
+
     	log.debug("Checking for inactive switches");
     	// For each switch check if a controller exists in controller registry
     	for (ISwitchObject sw: switches) {
@@ -249,7 +252,7 @@
 					TopologyElement topologyElementPort =
 					    new TopologyElement(sw.getId(), port.getPortNumber());
 					datagridService.notificationSendTopologyElementAdded(topologyElementPort);
-					
+
 					// Allow links to be discovered on this port now that it's
 					// in the database
 					linkDiscovery.RemoveFromSuppressLLDPs(sw.getId(), port.getPortNumber());
@@ -324,7 +327,7 @@
 			// Allow links to be discovered on this port now that it's
 			// in the database
 			linkDiscovery.RemoveFromSuppressLLDPs(switchId, port.getPortNumber());
-			
+
 		    // TODO publish ADD_PORT event here
 		    TopologyElement topologyElement =
 			new TopologyElement(switchId, port.getPortNumber());
@@ -409,7 +412,7 @@
 	public void deviceVlanChanged(IDevice device) {
 		// TODO Auto-generated method stub
 	}
-	
+
 
 	@Override
 	public Collection<Class<? extends IFloodlightService>> getModuleServices() {
@@ -460,7 +463,7 @@
 		threadPool = context.getServiceImpl(IThreadPoolService.class);
 		registryService = context.getServiceImpl(IControllerRegistryService.class);
 		datagridService = context.getServiceImpl(IDatagridService.class);
-		
+
 		devStore = new DeviceStorageImpl();
 		devStore.init(dbStore, conf);
 		
@@ -471,7 +474,7 @@
 		linkStore.init(dbStore, conf);
 				
 		log.debug("Initializing NetworkGraphPublisher module with {}", conf);
-		
+
 	}
 
 	@Override
@@ -482,7 +485,7 @@
 		//deviceService.addListener(this);
 		floodlightProvider.addOFSwitchListener(this);
 		linkDiscovery.addListener(this);
-		
+
 		log.debug("Adding EventListener");
 		System.out.println("start Up op " + op);
 		IDBConnection conn = op.getDBConnection();
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
index 905a9df..05c5ecb 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
@@ -78,13 +78,13 @@
 	    String stacktrace = sw.toString();
 
 	    log.error(":addFlow FlowId:{} failed: {}",
-		      flowPath.flowId().toString(),
+		      flowPath.flowId(),
 		      stacktrace);
 	    return false;
 	}
 	if (flowObj == null) {
 	    log.error(":addFlow FlowId:{} failed: Flow object not created",
-		      flowPath.flowId().toString());
+		      flowPath.flowId());
 	    dbHandler.rollback();
 	    return false;
 	}
@@ -399,12 +399,12 @@
 	    }
 	} catch (Exception e) {
 	    log.error(":addFlow FlowEntryId:{} failed",
-		      flowEntry.flowEntryId().toString());
+		      flowEntry.flowEntryId());
 	    return null;
 	}
 	if (flowEntryObj == null) {
 	    log.error(":addFlow FlowEntryId:{} failed: FlowEntry object not created",
-		      flowEntry.flowEntryId().toString());
+		      flowEntry.flowEntryId());
 	    return null;
 	}
 
@@ -673,7 +673,7 @@
 	    flowEntryObj = dbHandler.searchFlowEntry(flowEntry.flowEntryId());
 	} catch (Exception e) {
 	    log.error(":deleteFlowEntry FlowEntryId:{} failed",
-		      flowEntry.flowEntryId().toString());
+		      flowEntry.flowEntryId());
 	    return false;
 	}
 	//
@@ -683,7 +683,7 @@
 	/*
 	if (flowEntryObj == null) {
 	    log.error(":deleteFlowEntry FlowEntryId:{} failed: FlowEntry object not found",
-		      flowEntry.flowEntryId().toString());
+		      flowEntry.flowEntryId());
 	    return false;
 	}
 	*/
@@ -738,7 +738,7 @@
 	} catch (Exception e) {
 	    // TODO: handle exceptions
 	    dbHandler.rollback();
-	    log.error(":deleteFlow FlowId:{} failed", flowId.toString());
+	    log.error(":deleteFlow FlowId:{} failed", flowId);
 	    return false;
 	}
 	if (flowObj == null) {
@@ -775,7 +775,7 @@
 	} catch (Exception e) {
 	    // TODO: handle exceptions
 	    dbHandler.rollback();
-	    log.error(":getFlow FlowId:{} failed", flowId.toString());
+	    log.error(":getFlow FlowId:{} failed", flowId);
 	    return null;
 	}
 	if (flowObj == null) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
index b25634f..8b1f7c0 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
@@ -148,6 +148,7 @@
      */
     @Override
     public void run() {
+	this.setName("FlowEventHandler " + this.getId());
 	startup();
 
 	//
@@ -354,8 +355,7 @@
 	for (EventEntry<FlowPath> eventEntry : flowPathEvents) {
 	    FlowPath flowPath = eventEntry.eventData();
 
-	    log.debug("Flow Event: {} {}", eventEntry.eventType(),
-		      flowPath.toString());
+	    log.debug("Flow Event: {} {}", eventEntry.eventType(), flowPath);
 
 	    switch (eventEntry.eventType()) {
 	    case ENTRY_ADD: {
@@ -439,7 +439,7 @@
 	    TopologyElement topologyElement = eventEntry.eventData();
 
 	    log.debug("Topology Event: {} {}", eventEntry.eventType(),
-		      topologyElement.toString());
+		      topologyElement);
 
 	    switch (eventEntry.eventType()) {
 	    case ENTRY_ADD:
@@ -506,7 +506,7 @@
 	    FlowEntry flowEntry = eventEntry.eventData();
 
 	    log.debug("Flow Entry Event: {} {}", eventEntry.eventType(),
-		      flowEntry.toString());
+		      flowEntry);
 
 	    if ((! flowEntry.isValidFlowId()) ||
 		(! flowEntry.isValidFlowEntryId())) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 3205d6a..611b5c9 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -97,6 +97,7 @@
     /**
      * Shutdown the Flow Manager operation.
      */
+    @Override
     public void finalize() {
     	close();
     }
@@ -118,7 +119,7 @@
      */
     @Override
     public Collection<Class<? extends IFloodlightService>> getModuleServices() {
-        Collection<Class<? extends IFloodlightService>> l = 
+        Collection<Class<? extends IFloodlightService>> l =
             new ArrayList<Class<? extends IFloodlightService>>();
         l.add(IFlowService.class);
         return l;
@@ -130,7 +131,7 @@
      * @return the collection of implemented services.
      */
     @Override
-    public Map<Class<? extends IFloodlightService>, IFloodlightService> 
+    public Map<Class<? extends IFloodlightService>, IFloodlightService>
 			       getServiceImpls() {
         Map<Class<? extends IFloodlightService>,
 	    IFloodlightService> m =
@@ -146,7 +147,7 @@
      * @return the collection of modules this module depends on.
      */
     @Override
-    public Collection<Class<? extends IFloodlightService>> 
+    public Collection<Class<? extends IFloodlightService>>
 				      getModuleDependencies() {
 	Collection<Class<? extends IFloodlightService>> l =
 	    new ArrayList<Class<? extends IFloodlightService>>();
@@ -376,6 +377,7 @@
      *
      * @return the network topology.
      */
+    @Override
     public Topology getTopology() {
 	return flowEventHandler.getTopology();
     }
@@ -386,6 +388,7 @@
      * @param sw the switch the Flow Entry expired on.
      * @param flowEntryId the Flow Entry ID of the expired Flow Entry.
      */
+    @Override
     public void flowEntryOnSwitchExpired(IOFSwitch sw,
 					 FlowEntryId flowEntryId) {
 	// Find the Flow Entry
@@ -414,6 +417,7 @@
      * @param entries the collection of <IOFSwitch, FlowEntry> pairs
      * that have been pushed.
      */
+    @Override
     public void flowEntriesPushedToSwitch(
 		Collection<Pair<IOFSwitch, FlowEntry>> entries) {
 
@@ -537,7 +541,7 @@
 		flowEntry.setFlowEntryId(new FlowEntryId(id));
 	    }
 
-	    log.debug("Pushing Flow Entry To Switch: {}", flowEntry.toString());
+	    log.debug("Pushing Flow Entry To Switch: {}", flowEntry);
 	    entries.add(new Pair<IOFSwitch, FlowEntry>(mySwitch, flowEntry));
 	}
 
@@ -583,7 +587,7 @@
 	    if (mySwitch != null)
 		continue;
 
-	    log.debug("Pushing cleanup of Flow Entry To Datagrid: {}", flowEntry.toString());
+	    log.debug("Pushing cleanup of Flow Entry To Datagrid: {}", flowEntry);
 
 	    //
 	    // Write the Flow Entry to the Datagrid
@@ -620,6 +624,7 @@
 	    // The main loop
 	    //
 	    Collection<FlowPath> collection = new LinkedList<FlowPath>();
+	    this.setName("FlowDatabaseWriter " + this.getId() );
 	    try {
 		while (true) {
 		    FlowPath flowPath = blockingQueue.take();
@@ -696,8 +701,7 @@
 	    //
 	    if (flowPath.flowPathUserState() ==
 		FlowPathUserState.FP_USER_DELETE) {
-		log.debug("Deleting Flow Path From Database: {}",
-			  flowPath.toString());
+		log.debug("Deleting Flow Path From Database: {}", flowPath);
 
 		boolean retry = false;
 		do {
@@ -743,7 +747,7 @@
 	    if (! allValid)
 		continue;
 
-	    log.debug("Pushing Flow Path To Database: {}", flowPath.toString());
+	    log.debug("Pushing Flow Path To Database: {}", flowPath);
 
 	    //
 	    // Write the Flow Path to the Network Map
@@ -754,9 +758,7 @@
 		try {
                     long startTime = System.nanoTime();
 		    if (! FlowDatabaseOperation.addFlow(dbHandlerInner, flowPath)) {
-			String logMsg = "Cannot write to Network Map Flow Path " +
-			    flowPath.flowId();
-			log.error(logMsg);
+			log.error("Cannot write to Network Map Flow Path {}", flowPath.flowId());
 			retry = true;
 		    }
  		    // FIXME Flag to turn ON logging
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
index 2a7574b..4f4c1e4 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
@@ -51,7 +51,7 @@
 	ObjectMapper mapper = new ObjectMapper();
 	String flowPathStr = flowJson;
 	FlowPath flowPath = null;
-	log.debug("Add Flow Path: " + flowPathStr);
+	log.debug("Add Flow Path: {}", flowPathStr);
 	try {
 	    flowPath = mapper.readValue(flowPathStr, FlowPath.class);
 	} catch (JsonGenerationException e) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
index d0991e8..ab68584 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
@@ -46,7 +46,7 @@
 	    result = flowService.deleteAllFlows();
 	} else {
 	    FlowId flowId = new FlowId(flowIdStr);
-	    log.debug("Delete Flow Id: " + flowIdStr);
+	    log.debug("Delete Flow Id: {}", flowIdStr);
 	    result = flowService.deleteFlow(flowId);
 	}
 	return result;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
index 1bfb6a3..1cbeece 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
@@ -41,7 +41,7 @@
 	String flowIdStr = (String) getRequestAttributes().get("flow-id");
 	FlowId flowId = new FlowId(flowIdStr);
 
-	log.debug("Get Flow Id: " + flowIdStr);
+	log.debug("Get Flow Id: {}", flowIdStr);
 
 	result = flowService.getFlow(flowId);
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
index 9cffb56..aa31abd 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
@@ -47,8 +47,8 @@
         // Extract the arguments
     	String flowIdStr = (String) getRequestAttributes().get("flow-id");
     	String maxFlowStr = (String) getRequestAttributes().get("max-flows");
-    	log.debug("Get Summary Flows starting flow-id: " + flowIdStr + " max-flows: " + maxFlowStr);
-    	
+    	log.debug("Get Summary Flows starting flow-id: {} max-flows: {}" ,flowIdStr, maxFlowStr);
+
     	flowId = new FlowId(flowIdStr);
     	maxFlows = Integer.parseInt(maxFlowStr);
     	if (maxFlows < 0) maxFlows = 0;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java
index 641faaf..e94d948 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java
@@ -140,7 +140,7 @@
 	case FLOW_REMOVED:
 	    OFFlowRemoved flowMsg = (OFFlowRemoved) msg;
 	    FlowEntryId id = new FlowEntryId(flowMsg.getCookie());
-	    log.debug("Got flow entry removed from " + sw.getId() + ": " + id);
+	    log.debug("Got flow entry removed from {}: {}",sw.getId(), id);
 	    flowManager.flowEntryOnSwitchExpired(sw, id);
 	    break;
 	default:
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java
index 6485c5e..f2a1828 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java
@@ -152,6 +152,7 @@
 		
 		@Override
 		public void run() {
+			this.setName("FlowPusherThread " + this.getId() );
 			while (true) {
 				try {
 					// wait for message pushed to queue
@@ -504,7 +505,7 @@
 			// Unknown user state. Ignore the entry
 			log.debug(
 					"Flow Entry ignored (FlowEntryId = {}): unknown user state {}",
-					flowEntry.flowEntryId().toString(),
+					flowEntry.flowEntryId(),
 					flowEntry.flowEntryUserState());
 			return false;
 		}
@@ -746,13 +747,16 @@
 		//
 		// Write the message to the switch
 		//
-		log.debug("Installing flow entry "
-				+ flowEntry.flowEntryUserState() + " into switch DPID: "
-				+ sw.getStringId() + " flowEntryId: "
-				+ flowEntry.flowEntryId().toString() + " srcMac: "
-				+ matchSrcMac + " dstMac: " + matchDstMac + " inPort: "
-				+ matchInPort + " outPort: " + actionOutputPort);
-		
+		log.debug("Installing flow entry {} into switch DPID: {} flowEntryId: {} srcMac: {} dstMac: {} inPort: {} outPort: {}"
+			, flowEntry.flowEntryUserState()
+			, sw.getStringId()
+			, flowEntry.flowEntryId()
+			, matchSrcMac
+			, matchDstMac
+			, matchInPort
+			, actionOutputPort
+			);
+
 		return add(sw, fm);
 	}
 	
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java
index 04d3bbc..98fe262 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java
@@ -124,14 +124,14 @@
 	    extractTime /= div;
 	    pushTime /= div;
 	    totalTime /= div;
-	    log.debug("Sync time (ms):" +
-	    		  graphIDTime + "," +
-	     		  switchTime + "," + 
-	    		  compareTime + "," +
-	     		  graphEntryTime + "," +
-	    		  extractTime + "," + 
-	     		  pushTime + "," +
-	              totalTime);
+	    log.debug("Sync time (ms):{},{},{},{},{},{},{}"
+	              , graphIDTime
+	              , switchTime
+	              , compareTime
+	              , graphEntryTime
+	              , extractTime
+	              , pushTime
+	              , totalTime);
 	}
 
 	/**
@@ -161,11 +161,14 @@
 		extractTime += entry.extractTime;
 		pushTime += entry.pushTime;
 		added++;
-	    }	  
-	    log.debug("Flow entries added "+ added + ", " +
-		      "Flow entries removed "+ removed + ", " +
-		      "Flow entries skipped " + skipped);
-	    
+	    }
+	    log.debug("Flow entries added {}, " +
+		      "Flow entries removed {}, " +
+		      "Flow entries skipped {}"
+		      , added
+		      , removed
+		      , skipped );
+
 	    return new SyncResult(added, removed, skipped);
 	}
 
@@ -258,7 +261,7 @@
 	double dbTime, extractTime, pushTime;
 	public void addToSwitch(IOFSwitch sw) {
 	    if (statisticsReply != null) {
-		log.error("Error adding existing flow entry {} to sw {}", 
+		log.error("Error adding existing flow entry {} to sw {}",
 			  statisticsReply.getCookie(), sw.getId());
 		return;
 	    }
@@ -289,19 +292,19 @@
 		return;
 	    }
 	    extractTime = System.nanoTime() - startExtract;
-	    
+
 	    double startPush = System.nanoTime();
 	    pusher.pushFlowEntry(sw, flowEntry);
 	    pushTime = System.nanoTime() - startPush;
 	}
-	
+
 	/**
 	 * Remove this FlowEntry from a switch via FlowPusher.
 	 * @param sw Switch from which flow will be removed.
 	 */
 	public void removeFromSwitch(IOFSwitch sw) {
 	    if (statisticsReply == null) {
-		log.error("Error removing non-existent flow entry {} from sw {}", 
+		log.error("Error removing non-existent flow entry {} from sw {}",
 			  flowEntryId, sw.getId());
 		return;
 	    }
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 8077201..1dbfdcb 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -664,8 +664,7 @@
             iofSwitch.write(po, null);
             iofSwitch.flush();
         } catch (IOException e) {
-            log.error("Failure sending LLDP out port {} on switch {}",
-                      new Object[]{ port, iofSwitch.getStringId() }, e);
+            log.error("Failure sending LLDP out port "+port+" on switch "+iofSwitch.getStringId(), e);
         }
 
     }
@@ -675,7 +674,7 @@
      */
     protected void discoverOnAllPorts() {
         if (log.isTraceEnabled()) {
-            log.trace("Sending LLDP packets out of all the enabled ports on switch {}");
+            log.trace("Sending LLDP packets out of all the enabled ports on switch");
         }
         Set<Long> switches = floodlightProvider.getSwitches().keySet();
         // Send standard LLDPs
diff --git a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
index 9d9e36d..2b4b0b1 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
@@ -226,7 +226,9 @@
 					
 					if (targetDevice != null) {
 						deviceStorage.removeDevice(targetDevice);
-						log.debug("RemoveDevice: {} due to no have not recieve the ARP reply", targetDevice.toString());
+						if (log.isDebugEnabled()) {
+							log.debug("RemoveDevice: {} due to no have not recieve the ARP reply", targetDevice);
+						}
 					}
 					
 					it.remove();
@@ -351,10 +353,10 @@
 			MACAddress macAddress = MACAddress.valueOf(targetDevice.getMACAddress());
 
 			if (log.isTraceEnabled()) {
-				log.trace("The target Device Record in DB is: {} => {} from ARP request host at {}/{}", 
+				log.trace("The target Device Record in DB is: {} => {} from ARP request host at {}/{}",
 						new Object [] {
 						inetAddressToString(arp.getTargetProtocolAddress()),
-						macAddress.toString(),
+						macAddress,
 						HexString.toHexString(sw.getId()), pi.getInPort()});
 			}
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/topology/web/RouteResource.java b/src/main/java/net/onrc/onos/ofcontroller/topology/web/RouteResource.java
index d8997dc..540c47d 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/topology/web/RouteResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/topology/web/RouteResource.java
@@ -40,7 +40,7 @@
         String dstDpidStr = (String) getRequestAttributes().get("dst-dpid");
         String dstPortStr = (String) getRequestAttributes().get("dst-port");
 
-        log.debug( srcDpidStr + "--" + srcPortStr + "--" + dstDpidStr + "--" + dstPortStr);
+        log.debug( "{}--{}--{}--{}", srcDpidStr, srcPortStr, dstDpidStr, dstPortStr);
 
 	Dpid srcDpid = new Dpid(srcDpidStr);
 	Port srcPort = new Port(Short.parseShort(srcPortStr));
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java
index f5728b0..0ecaebe 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java
@@ -86,7 +86,7 @@
      */
     @Override
     public boolean equals(Object obj){
-	if(obj.getClass() == this.getClass()) {
+	if(obj != null && obj.getClass() == this.getClass()) {
 	    FlowEntryId entry = (FlowEntryId) obj;
 	    return this.value() == entry.value();
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java
index fe93245..695bb1a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		dpid = new Dpid(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java
index f341027..e6c46aa 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		flowId = new FlowId(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java
index 2969e60..ff2238a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		ipv4 = new IPv4(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java
index b2592af..edec8ad 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		ipv4Net = new IPv4Net(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java
index c825377..6689024 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		ipv6 = new IPv6(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java
index 7191fa9..0d41c21 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		ipv6Net = new IPv6Net(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java
index 5253dce..1436f28 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java
@@ -31,7 +31,7 @@
 	    String fieldname = jp.getCurrentName();
 	    if ("value".equals(fieldname)) {
 		String value = jp.getText();
-		log.debug("Fieldname: " + fieldname + " Value: " + value);
+		log.debug("Fieldname: {} Value: {}", fieldname, value);
 		mac = MACAddress.valueOf(value);
 	    }
 	}
diff --git a/src/main/java/net/onrc/onos/registry/controller/StandaloneRegistry.java b/src/main/java/net/onrc/onos/registry/controller/StandaloneRegistry.java
index 82af20c..319ea48 100644
--- a/src/main/java/net/onrc/onos/registry/controller/StandaloneRegistry.java
+++ b/src/main/java/net/onrc/onos/registry/controller/StandaloneRegistry.java
@@ -101,7 +101,7 @@
 				new HashMap<String, List<ControllerRegistryEntry>>();
 		
 		for (String strSwitch : switchCallbacks.keySet()){
-			log.debug("Swtich _{}", strSwitch);
+			log.debug("Switch _{}", strSwitch);
 			List<ControllerRegistryEntry> list = new ArrayList<ControllerRegistryEntry>();
 			list.add(new ControllerRegistryEntry(controllerId, 0));
 			
diff --git a/src/main/java/net/onrc/onos/registry/controller/ZookeeperRegistry.java b/src/main/java/net/onrc/onos/registry/controller/ZookeeperRegistry.java
index b03aea2..3e4d5bf 100644
--- a/src/main/java/net/onrc/onos/registry/controller/ZookeeperRegistry.java
+++ b/src/main/java/net/onrc/onos/registry/controller/ZookeeperRegistry.java
@@ -99,7 +99,12 @@
 			//may have since released the request or even begun another request
 			//(this is why we use == to check the object instance is the same)
 			SwitchLeadershipData swData = switches.get(dpid);
-			if (swData != null && swData.getLatch() == latch){
+			if (swData == null) {
+				log.debug("Leadership data {} not found", dpid);
+				return;
+			}
+			
+			if (swData.getLatch() == latch){
 				swData.getCallback().controlChanged(
 						HexString.toLong(dpid), latch.hasLeadership());
 			}
diff --git a/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java b/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
index 09365d7..33bb0bd 100644
--- a/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
+++ b/src/main/java/org/openflow/protocol/vendor/OFBasicVendorId.java
@@ -87,7 +87,7 @@
      * @return
      */
     public OFVendorDataType lookupVendorDataType(int vendorDataType) {
-        return dataTypeMap.get(vendorDataType);
+        return dataTypeMap.get((long)vendorDataType);
     }
 
     /**
diff --git a/src/main/java/org/openflow/util/HexString.java b/src/main/java/org/openflow/util/HexString.java
index 07cc1f7..9a656dd 100644
--- a/src/main/java/org/openflow/util/HexString.java
+++ b/src/main/java/org/openflow/util/HexString.java
@@ -47,12 +47,12 @@
         int i = 0;
         for (; i < (padTo * 2 - arr.length); i++) {
             ret.append('0');
-            if ((i % 2) == 1)
+            if ((i & 1) == 1)
                 ret.append(':');
         }
         for (int j = 0; j < arr.length; j++) {
             ret.append(arr[j]);
-            if ((((i + j) % 2) == 1) && (j < (arr.length - 1)))
+            if ((((i + j) & 1) == 1) && (j < (arr.length - 1)))
                 ret.append(':');
         }
         return ret.toString();
diff --git a/src/test/java/net/floodlightcontroller/util/MACAddressTest.java b/src/test/java/net/floodlightcontroller/util/MACAddressTest.java
index 5669614..f19eedb 100644
--- a/src/test/java/net/floodlightcontroller/util/MACAddressTest.java
+++ b/src/test/java/net/floodlightcontroller/util/MACAddressTest.java
@@ -18,7 +18,7 @@
         address = MACAddress.valueOf("FF:FE:FD:10:20:30");
         assertEquals(address,
                 MACAddress.valueOf(new byte[]{(byte) 0xFF, (byte) 0xFE, (byte) 0xFD, 0x10, 0x20, 0x30}));
-        assertEquals("FF:FE:FD:10:20:30", address.toString());
+        assertEquals("ff:fe:fd:10:20:30", address.toString());
         
         address = MACAddress.valueOf("00:11:22:aa:bb:cc");
         assertEquals(address,
diff --git a/start-onos-embedded.sh b/start-onos-embedded.sh
index 6fc9362..c967419 100755
--- a/start-onos-embedded.sh
+++ b/start-onos-embedded.sh
@@ -36,6 +36,13 @@
 if [ -z "${MVN}" ]; then
     MVN="mvn"
 fi
+
+if [ ! -f ${ONOS_HOME}/.javacp ]; then
+  ${MVN} -f ${ONOS_HOME}/pom.xml compile
+fi
+JAVA_CP=`cat ${ONOS_HOME}/.javacp`
+JAVA_CP="${JAVA_CP}:${ONOS_HOME}/target/classes"
+
 #<logger name="net.floodlightcontroller.linkdiscovery.internal" level="TRACE"/>
 #<appender-ref ref="STDOUT" />
 
@@ -96,8 +103,7 @@
 
   # XXX MVN has to run at the project top dir..
   cd ${ONOS_HOME}
-  echo "${MVN} exec:exec -Dexec.executable=\"java\" -Dexec.args=\"${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp %classpath ${MAIN_CLASS} -cf ${ONOS_HOME}/conf/onos-embedded.properties\""
-  ${MVN} exec:exec -Dexec.executable="java" -Dexec.args="${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp %classpath ${MAIN_CLASS} -cf ${ONOS_HOME}/conf/onos-embedded.properties" > ${LOGDIR}/onos.stdout 2>${LOGDIR}/onos.stderr &
+  java ${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp ${JAVA_CP} ${MAIN_CLASS} -cf ${ONOS_HOME}/conf/onos-embedded.properties > ${LOGDIR}/onos.`hostname`.stdout 2>${LOGDIR}/onos.`hostname`.stderr &
 
   echo "Waiting for ONOS to start..."
   COUNT=0
@@ -160,6 +166,6 @@
     echo "$n instance of onos running"
     ;;
   *)
-    echo "Usage: $0 {start|stop|restart|status|startifdown}"
+    echo "Usage: $0 {start|stop|status|startifdown}"
     exit 1
 esac
diff --git a/start-onos-jacoco.sh b/start-onos-jacoco.sh
index 2e04216..2d1adf4 100755
--- a/start-onos-jacoco.sh
+++ b/start-onos-jacoco.sh
@@ -43,6 +43,12 @@
     MVN="mvn -o"
 fi
 
+if [ ! -f ${ONOS_HOME}/.javacp ]; then
+  ${MVN} -f ${ONOS_HOME}/pom.xml compile
+fi
+JAVA_CP=`cat ${ONOS_HOME}/.javacp`
+JAVA_CP="${JAVA_CP}:${ONOS_HOME}/target/classes"
+
 #<logger name="net.floodlightcontroller.linkdiscovery.internal" level="TRACE"/>
 #<appender-ref ref="STDOUT" />
 
@@ -106,10 +112,7 @@
   # XXX : MVN has to run at the project top dir 
   echo $ONOS_HOME
   cd ${ONOS_HOME}
-  pwd 
-  echo "${MVN} exec:exec -Dexec.executable=\"java\" -Dexec.args=\"${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp %classpath ${MAIN_CLASS} -cf ./conf/onos.properties\""
-
-  ${MVN} exec:exec -Dexec.executable="java" -Dexec.args="${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp %classpath ${MAIN_CLASS} -cf ./conf/onos.properties" > ${LOGDIR}/onos.`hostname`.stdout 2>${LOGDIR}/onos.`hostname`.stderr &
+  java ${JVM_OPTS} -Dlogback.configurationFile=${ONOS_LOGBACK} -cp ${JAVA_CP} ${MAIN_CLASS} -cf ./conf/onos.properties > ${LOGDIR}/onos.`hostname`.stdout 2>${LOGDIR}/onos.`hostname`.stderr &
 
   echo "Waiting for ONOS to start..."
   COUNT=0
@@ -179,6 +182,6 @@
     echo "$n instance of onos running"
     ;;
   *)
-    echo "Usage: $0 {start|stop|restart|status|startifdown}"
+    echo "Usage: $0 {start|stop|status|startifdown}"
     exit 1
 esac
diff --git a/start-onos.sh b/start-onos.sh
index e2294fe..f4ebc7b 100755
--- a/start-onos.sh
+++ b/start-onos.sh
@@ -54,7 +54,6 @@
 JAVA_CP=`cat ${ONOS_HOME}/.javacp`
 JAVA_CP="${JAVA_CP}:${ONOS_HOME}/target/classes"
 
-
 #<logger name="net.floodlightcontroller.linkdiscovery.internal" level="TRACE"/>
 #<appender-ref ref="STDOUT" />
 
@@ -196,6 +195,6 @@
     echo "$n instance of onos running"
     ;;
   *)
-    echo "Usage: $0 {start|stop|restart|status|startifdown}"
+    echo "Usage: $0 {start|stop|status|startifdown}"
     exit 1
 esac
diff --git a/start-rest.sh b/start-rest.sh
index 01e7638..910eb41 100755
--- a/start-rest.sh
+++ b/start-rest.sh
@@ -73,6 +73,6 @@
     status
     ;;
   *)
-    echo "Usage: $0 {start|stop|restart|status}"
+    echo "Usage: $0 {start|stop|status}"
     exit 1
 esac
diff --git a/titan/gremlin.sh b/titan/gremlin.sh
index d5d5da4..b13264c 100755
--- a/titan/gremlin.sh
+++ b/titan/gremlin.sh
@@ -6,8 +6,6 @@
 
 BASE_DIR=`dirname $0`
 ONOS_DIR="`dirname $0`/.."
-#CP=$( echo `dirname $0`/../lib/*.jar `dirname $0`/../lib/titan/*.jar . | sed 's/ /:/g')
-#CP=`${MVN} -f ${ONOS_DIR}/pom.xml dependency:build-classpath -Dmdep.outputFile=/dev/stdout -l /dev/stderr`
 
 # Use a python script to parse the classpath out of the .classpath file
 if [ ! -f ${BASE_DIR}/../.javacp ]; then
diff --git a/web/floodlight/js/controller-status.js b/web/js/controller-status.js
similarity index 100%
rename from web/floodlight/js/controller-status.js
rename to web/js/controller-status.js
diff --git a/web/floodlight/js/jquery-1.7.2.min.js b/web/js/jquery-1.7.2.min.js
similarity index 100%
rename from web/floodlight/js/jquery-1.7.2.min.js
rename to web/js/jquery-1.7.2.min.js
diff --git a/web/floodlight/js/onos-topology-route.js b/web/js/onos-topology-route.js
similarity index 100%
rename from web/floodlight/js/onos-topology-route.js
rename to web/js/onos-topology-route.js
diff --git a/web/floodlight/js/onos-topology.js b/web/js/onos-topology.js
similarity index 100%
rename from web/floodlight/js/onos-topology.js
rename to web/js/onos-topology.js
diff --git a/web/onos-topology.html b/web/onos-topology.html
index d72c0e1..5834521 100644
--- a/web/onos-topology.html
+++ b/web/onos-topology.html
@@ -24,7 +24,7 @@
 <button id="more">more</button>
 <button id="less">less</button>
 --!>
-<svg width="4in" height="2in" 
+<svg width="0.1in" height="0.1in" 
      viewBox="0 0 4000 2000" version="1.1"
      xmlns="http://www.w3.org/2000/svg">
   <defs>
