diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
index b39004b..7fc3e8d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
@@ -16,6 +16,7 @@
 package org.onosproject.store.consistent.impl;
 
 import org.onosproject.store.serializers.KryoNamespaces;
+import org.onosproject.store.service.AsyncAtomicValue;
 import org.onosproject.store.service.AtomicValue;
 import org.onosproject.store.service.AtomicValueBuilder;
 import org.onosproject.store.service.ConsistentMapBuilder;
@@ -28,13 +29,12 @@
  */
 public class DefaultAtomicValueBuilder<V> implements AtomicValueBuilder<V> {
 
-    private Serializer serializer;
     private String name;
-    private ConsistentMapBuilder<String, byte[]> mapBuilder;
+    private ConsistentMapBuilder<String, V> mapBuilder;
     private boolean metering = true;
 
     public DefaultAtomicValueBuilder(DatabaseManager manager) {
-        mapBuilder = manager.<String, byte[]>consistentMapBuilder()
+        mapBuilder = manager.<String, V>consistentMapBuilder()
                             .withName("onos-atomic-values")
                             .withMeteringDisabled()
                             .withSerializer(Serializer.using(KryoNamespaces.BASIC));
@@ -48,7 +48,7 @@
 
     @Override
     public AtomicValueBuilder<V> withSerializer(Serializer serializer) {
-        this.serializer = serializer;
+        mapBuilder.withSerializer(serializer);
         return this;
     }
 
@@ -65,7 +65,12 @@
     }
 
     @Override
+    public AsyncAtomicValue<V> buildAsyncValue() {
+        return new DefaultAsyncAtomicValue<>(mapBuilder.buildAsyncMap(), name, metering);
+    }
+
+    @Override
     public AtomicValue<V> build() {
-        return new DefaultAtomicValue<>(mapBuilder.build(), name, metering, serializer);
+        return new DefaultAtomicValue<>(buildAsyncValue());
     }
 }
\ No newline at end of file
