diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
index 520b9a6..42fb57c 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
@@ -15,13 +15,14 @@
  */
 package org.onosproject.store.primitives.impl;
 
-import java.util.function.Function;
-
+import org.onosproject.store.service.AsyncAtomicCounterMap;
 import org.onosproject.store.service.AsyncConsistentMap;
 import org.onosproject.store.service.AsyncConsistentMultimap;
 import org.onosproject.store.service.AsyncConsistentTreeMap;
 import org.onosproject.store.service.AsyncDistributedSet;
 
+import java.util.function.Function;
+
 /**
  * Misc utilities for working with {@code DistributedPrimitive}s.
  */
@@ -77,6 +78,22 @@
     }
 
     /**
+     * Creates an instance of {@code AsyncAtomicCounterMap} that transforms key types.
+     *
+     * @param map backing map
+     * @param keyEncoder transformer for key type of returned map to key type of input map
+     * @param keyDecoder transformer for key type of input map to key type of returned map
+     * @param <K1> returned map key type
+     * @param <K2> input map key type
+     * @return new counter map
+     */
+    public static <K1, K2> AsyncAtomicCounterMap<K1> newTranscodingAtomicCounterMap(AsyncAtomicCounterMap<K2> map,
+            Function<K1, K2> keyEncoder,
+            Function<K2, K1> keyDecoder) {
+        return new TranscodingAsyncAtomicCounterMap<>(map, keyEncoder, keyDecoder);
+    }
+
+    /**
      * Creates an instance of {@code AsyncConsistentMap} that transforms operations inputs and applies them
      * to corresponding operation in a different typed map and returns the output after reverse transforming it.
      *
