diff --git a/src/main/java/net/onrc/onos/core/registry/ZookeeperRegistry.java b/src/main/java/net/onrc/onos/core/registry/ZookeeperRegistry.java
index 35ce962..38ca110 100644
--- a/src/main/java/net/onrc/onos/core/registry/ZookeeperRegistry.java
+++ b/src/main/java/net/onrc/onos/core/registry/ZookeeperRegistry.java
@@ -160,7 +160,7 @@
     }
 
     class SwitchLeaderListener implements LeaderLatchListener {
-        private String dpid;
+        private final String dpid;
 
         public SwitchLeaderListener(String dpid) {
             this.dpid = dpid;
@@ -168,7 +168,7 @@
 
         @Override
         public void isLeader() {
-            log.debug("Became leader for {}", dpid);
+            log.info("Became leader for {}", dpid);
 
             switchLeadershipEvents.add(
                     new SwitchLeaderEvent(HexString.toLong(dpid), true));
@@ -176,7 +176,7 @@
 
         @Override
         public void notLeader() {
-            log.debug("Lost leadership for {}", dpid);
+            log.info("Lost leadership for {}", dpid);
 
             switchLeadershipEvents.add(
                     new SwitchLeaderEvent(HexString.toLong(dpid), false));
@@ -236,12 +236,12 @@
 
         @Override
         public void isLeader() {
-            log.debug("Cluster leadership aquired");
+            log.info("Cluster leadership aquired");
         }
 
         @Override
         public void notLeader() {
-            log.debug("Cluster leadership lost");
+            log.info("Cluster leadership lost");
         }
     }
 
@@ -474,6 +474,7 @@
         return data;
     }
 
+    @Override
     public IdBlock allocateUniqueIdBlock(long range) {
         try {
             AtomicValue<Long> result = null;
