diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
index f2f546b..7280b60 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceStore.java
@@ -21,7 +21,7 @@
      * @param consumer resource consumer which the resources are allocated to
      * @return true if the allocation succeeds, false otherwise.
      */
-    boolean allocate(List<? extends Resource<?, ?>> resources, ResourceConsumer consumer);
+    boolean allocate(List<ResourcePath> resources, ResourceConsumer consumer);
 
     /**
      * Releases the specified resources allocated to the specified corresponding consumers
@@ -35,17 +35,15 @@
      * @param consumers resource consumers to whom the resource allocated to
      * @return true if succeeds, otherwise false
      */
-    boolean release(List<? extends Resource<?, ?>> resources, List<ResourceConsumer> consumers);
+    boolean release(List<ResourcePath> resources, List<ResourceConsumer> consumers);
 
     /**
      * Returns the resource consumer to whom the specified resource is allocated.
      *
      * @param resource resource whose allocated consumer to be returned
-     * @param <S> type of subject of the resource
-     * @param <T> type of resource
      * @return resource consumer who are allocated the resource
      */
-    <S, T> Optional<ResourceConsumer> getConsumer(Resource<S, T> resource);
+    Optional<ResourceConsumer> getConsumer(ResourcePath resource);
 
     /**
      * Returns a collection of the resources allocated to the specified consumer.
@@ -53,18 +51,17 @@
      * @param consumer resource consumer whose allocated resource are searched for
      * @return a collection of the resources allocated to the specified consumer
      */
-    Collection<Resource<?, ?>> getResources(ResourceConsumer consumer);
+    Collection<ResourcePath> getResources(ResourceConsumer consumer);
 
     /**
-     * Returns a collection of the resources which belongs to the specified subject and
+     * Returns a collection of the resources which are children of the specified parent and
      * whose type is the specified class.
      *
-     * @param subject subject of the resources to be returned
-     * @param cls class instance of the resources
-     * @param <S> type of the subject
+     * @param parent parent of the resources to be returned
+     * @param cls class instance of the children
      * @param <T> type of the resource
      * @return a collection of the resources which belongs to the specified subject and
      * whose type is the specified class.
      */
-    <S, T> Collection<Resource<S, T>> getAllocatedResources(S subject, Class<T> cls);
+    <T> Collection<ResourcePath> getAllocatedResources(ResourcePath parent, Class<T> cls);
 }
