diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
index b2e5395..e735768 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
@@ -73,12 +73,12 @@
     }
 
     @Override
-    public boolean isTypeOf(Class<?> ancestorType) {
+    public boolean isSubTypeOf(Class<?> ancestor) {
         String typeName = (String) id.components().get(id.components().size() - 1);
-        boolean foundInLeaf = typeName.equals(ancestorType.getCanonicalName());
+        boolean foundInLeaf = typeName.equals(ancestor.getCanonicalName());
         boolean foundInAncestor = id.components().subList(0, id.components().size()).stream()
                 .map(Object::getClass)
-                .filter(x -> x.equals(ancestorType))
+                .filter(x -> x.equals(ancestor))
                 .findAny()
                 .isPresent();
         return foundInAncestor || foundInLeaf;
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
index c120e59..1509b8b 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
@@ -63,10 +63,10 @@
     }
 
     @Override
-    public boolean isTypeOf(Class<?> ancestorType) {
+    public boolean isSubTypeOf(Class<?> ancestor) {
         return id.components().stream()
                 .map(Object::getClass)
-                .filter(x -> x.equals(ancestorType))
+                .filter(x -> x.equals(ancestor))
                 .findAny()
                 .isPresent();
     }
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
index 6e68404..1e3e61a 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
@@ -48,13 +48,12 @@
     ResourceId id();
 
     /**
-     * Checks if the type of this instance is the specified type.
+     * Checks if the type of this instance is the sub-type of the specified type.
      *
-     * @param ancestorType type of resource to be checked.
+     * @param ancestor type of resource to be checked.
      * @return true if this resource is under the resource whose type is the given type.
      */
-    // TODO: find more proper name
-    boolean isTypeOf(Class<?> ancestorType);
+    boolean isSubTypeOf(Class<?> ancestor);
 
     /**
      * Returns the volume of this resource.
