diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/EncodableDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/EncodableDiscreteResources.java
index 9edfb5f..0585f69 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/EncodableDiscreteResources.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/EncodableDiscreteResources.java
@@ -109,9 +109,13 @@
 
     @Override
     public DiscreteResources add(DiscreteResources other) {
-        Set<DiscreteResource> union = Sets.union(values(), other.values());
+        if (other instanceof EncodableDiscreteResources) {
+            return of(parent, Sets.union(this.values(), other.values()));
+        } else if (other instanceof EmptyDiscreteResources) {
+            return this;
+        }
 
-        return of(parent, union);
+        return DiscreteResources.of(Sets.union(this.values(), other.values()));
     }
 
     @Override
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
index 4672d81..9c7292d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
@@ -81,9 +81,13 @@
     // returns a new instance, not mutate the current instance
     @Override
     public DiscreteResources add(DiscreteResources other) {
-        Set<DiscreteResource> newValues = new LinkedHashSet<>(this.values);
-        newValues.addAll(other.values());
-        return new GenericDiscreteResources(newValues);
+        if (other instanceof GenericDiscreteResources) {
+            return new GenericDiscreteResources(Sets.union(this.values(), other.values()));
+        } else if (other instanceof EmptyDiscreteResources) {
+            return this;
+        }
+
+        return DiscreteResources.of(Sets.union(this.values(), other.values()));
     }
 
     @Override
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/UnifiedDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/UnifiedDiscreteResources.java
index b229308..4862606 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/UnifiedDiscreteResources.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/UnifiedDiscreteResources.java
@@ -93,6 +93,15 @@
 
     @Override
     public DiscreteResources add(DiscreteResources other) {
+        if (other instanceof UnifiedDiscreteResources) {
+            UnifiedDiscreteResources cast = (UnifiedDiscreteResources) other;
+            return new UnifiedDiscreteResources(
+                    this.generics.add(cast.generics),
+                    this.encodables.add(cast.encodables));
+        } else if (other instanceof EmptyDiscreteResources) {
+            return this;
+        }
+
         return of(Sets.union(this.values(), other.values()));
     }
 
