diff --git a/src/main/java/org/onosproject/cordvtn/NodeConnectionManager.java b/src/main/java/org/onosproject/cordvtn/NodeConnectionManager.java
index 0b7029e..908aff2 100644
--- a/src/main/java/org/onosproject/cordvtn/NodeConnectionManager.java
+++ b/src/main/java/org/onosproject/cordvtn/NodeConnectionManager.java
@@ -48,9 +48,11 @@
     /**
      * Creates a new NodeConnectionManager.
      *
-     * @param localId local id
-     * @param nodeStore node store
+     * @param appId             app id
+     * @param localId           local id
+     * @param nodeStore         node store
      * @param mastershipService mastership service
+     * @param leadershipService leadership service
      */
     public NodeConnectionManager(ApplicationId appId, NodeId localId,
                                  EventuallyConsistentMap<DeviceId, OvsdbNode> nodeStore,
@@ -68,11 +70,11 @@
      */
     public void start() {
         connectionExecutor = Executors.newSingleThreadScheduledExecutor(
-                        groupedThreads("onos/cordvtn", "connection-executor"));
+                groupedThreads("onos/cordvtn", "connection-executor"));
         connectionExecutor.scheduleWithFixedDelay(() -> nodeStore.values()
                 .stream()
                 .filter(node -> localId.equals(getMaster(node)))
-                .forEach(node -> connectNode(node)), 0, DELAY_SEC, TimeUnit.SECONDS);
+                .forEach(this::connectNode), 0, DELAY_SEC, TimeUnit.SECONDS);
     }
 
     /**
