diff --git a/apps/test/distributed-primitives/src/main/java/org/onosproject/distributedprimitives/cli/ConsistentMapTestCommand.java b/apps/test/distributed-primitives/src/main/java/org/onosproject/distributedprimitives/cli/ConsistentMapTestCommand.java
index ac09084..3896830 100644
--- a/apps/test/distributed-primitives/src/main/java/org/onosproject/distributedprimitives/cli/ConsistentMapTestCommand.java
+++ b/apps/test/distributed-primitives/src/main/java/org/onosproject/distributedprimitives/cli/ConsistentMapTestCommand.java
@@ -18,6 +18,7 @@
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.core.Version;
 import org.onosproject.store.serializers.KryoNamespaces;
 import org.onosproject.store.service.ConsistentMap;
 import org.onosproject.store.service.Serializer;
@@ -62,9 +63,11 @@
     protected void execute() {
         StorageService storageService = get(StorageService.class);
         map = storageService.<String, String>consistentMapBuilder()
-                                    .withName(name)
-                                    .withSerializer(Serializer.using(KryoNamespaces.BASIC))
-                                    .build();
+            .withName(name)
+            .withSerializer(Serializer.using(KryoNamespaces.BASIC))
+            .withVersion(Version.version("1.0.0"))
+            .withCompatibilityFunction((value, version) -> version + ":" + value)
+            .build();
         if ("get".equals(operation)) {
             print(map.get(arg1));
         } else if ("put".equals(operation)) {
@@ -95,6 +98,22 @@
             } else {
                 print("%b", map.replace(arg1, arg2, arg3));
             }
+        } else if ("compatiblePut".equals(operation)) {
+            ConsistentMap<String, String> map = storageService.<String, String>consistentMapBuilder()
+                .withName(name)
+                .withSerializer(Serializer.using(KryoNamespaces.BASIC))
+                .withCompatibilityFunction((value, version) -> version + ":" + value)
+                .withVersion(Version.version("2.0.0"))
+                .build();
+            print(map.put(arg1, arg2));
+        } else if ("compatibleGet".equals(operation)) {
+            ConsistentMap<String, String> map = storageService.<String, String>consistentMapBuilder()
+                .withName(name)
+                .withSerializer(Serializer.using(KryoNamespaces.BASIC))
+                .withCompatibilityFunction((value, version) -> version + ":" + value)
+                .withVersion(Version.version("2.0.0"))
+                .build();
+            print(map.get(arg1));
         }
     }
 
