diff --git a/src/interest.cpp b/src/interest.cpp
index 92fe972..b2ab024 100644
--- a/src/interest.cpp
+++ b/src/interest.cpp
@@ -41,9 +41,9 @@
     ndn_ExcludeEntry *entry = &excludeStruct.entries[i];
     
     if (entry->type == ndn_Exclude_COMPONENT)
-      addComponent(entry->component.value.value, entry->component.value.length);
+      appendComponent(entry->component.value.value, entry->component.value.length);
     else if (entry->type == ndn_Exclude_ANY)
-      addAny();
+      appendAny();
     else
       throw runtime_error("unrecognized ndn_ExcludeType");
   }
diff --git a/src/name.cpp b/src/name.cpp
index d785fdd..640fdeb 100644
--- a/src/name.cpp
+++ b/src/name.cpp
@@ -247,7 +247,7 @@
 {
   clear();
   for (size_t i = 0; i < nameStruct.nComponents; ++i)
-    addComponent(nameStruct.components[i].value.value, nameStruct.components[i].value.length);  
+    append(nameStruct.components[i].value.value, nameStruct.components[i].value.length);  
 }
 
 Name&
diff --git a/src/node.cpp b/src/node.cpp
index 168d446..d8bcb09 100644
--- a/src/node.cpp
+++ b/src/node.cpp
@@ -219,10 +219,10 @@
   Name interestName;
   const uint8_t component0[] = "ndnx";
   const uint8_t component2[] = "selfreg";
-  interestName.addComponent(component0, sizeof(component0) - 1);
-  interestName.addComponent(ndndId_);
-  interestName.addComponent(component2, sizeof(component2) - 1);
-  interestName.addComponent(encodedData);
+  interestName.append(component0, sizeof(component0) - 1);
+  interestName.append(ndndId_);
+  interestName.append(component2, sizeof(component2) - 1);
+  interestName.append(encodedData);
   
   Interest interest(interestName);
   interest.setScope(1);
