diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapState.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapState.java
index 504faff..636e261 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapState.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapState.java
@@ -602,14 +602,11 @@
 
         @Override
         public Supplier<HashMultiset<byte[]>> supplier() {
-            return new Supplier<HashMultiset<byte[]>>() {
-                @Override
-                public HashMultiset<byte[]> get() {
-                    if (multiset == null) {
-                        multiset = HashMultiset.create();
-                    }
-                    return multiset;
+            return () -> {
+                if (multiset == null) {
+                    multiset = HashMultiset.create();
                 }
+                return multiset;
             };
         }
 
@@ -651,14 +648,11 @@
 
         @Override
         public Supplier<Set<Map.Entry<String, byte[]>>> supplier() {
-            return new Supplier<Set<Map.Entry<String, byte[]>>>() {
-                @Override
-                public Set<Map.Entry<String, byte[]>> get() {
-                    if (set == null) {
-                        set = Sets.newHashSet();
-                    }
-                    return set;
+            return () -> {
+                if (set == null) {
+                    set = Sets.newHashSet();
                 }
+                return set;
             };
         }
 
