diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/WriteRequest.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/WriteRequest.java
index 7314e4f..1561c2d 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/WriteRequest.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/WriteRequest.java
@@ -15,19 +15,23 @@
     private final long previousVersion;
     private final byte[] oldValue;
 
+    // put regardless of previous value
     public WriteRequest(String tableName, String key, byte[] newValue) {
         this(tableName, key, newValue, -1, null);
     }
 
+    // put if version matches
     public WriteRequest(String tableName, String key, byte[] newValue, long previousVersion) {
         this(tableName, key, newValue, previousVersion, null);
         checkArgument(previousVersion >= 0);
     }
 
+    // put if value matches
     public WriteRequest(String tableName, String key, byte[] newValue, byte[] oldValue) {
         this(tableName, key, newValue, -1, oldValue);
     }
 
+    // hidden constructor
     private WriteRequest(String tableName, String key, byte[] newValue, long previousVersion, byte[] oldValue) {
 
         checkArgument(tableName != null);
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseManager.java b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseManager.java
index 97179da..a7d7075 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseManager.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/service/impl/DatabaseManager.java
@@ -56,14 +56,15 @@
 
     @Activate
     public void activate() {
+        // FIXME hack tcpPort +1 for copycat communication
         TcpMember localMember =
                 new TcpMember(
                         clusterService.getLocalNode().ip().toString(),
-                        clusterService.getLocalNode().tcpPort());
+                        clusterService.getLocalNode().tcpPort() + 1);
         List<TcpMember> remoteMembers = Lists.newArrayList();
 
         for (ControllerNode node : clusterService.getNodes()) {
-            TcpMember member = new TcpMember(node.ip().toString(), node.tcpPort());
+            TcpMember member = new TcpMember(node.ip().toString(), node.tcpPort() + 1);
             if (!member.equals(localMember)) {
                 remoteMembers.add(member);
             }
