diff --git a/ndn-cpp/Name.hpp b/ndn-cpp/Name.hpp
index 802aaae..3ec6511 100644
--- a/ndn-cpp/Name.hpp
+++ b/ndn-cpp/Name.hpp
@@ -9,15 +9,39 @@
 
 #include <vector>
 #include "common.h"
+#include "c/Name.h"
 #include "encoding/BinaryXMLWireFormat.hpp"
 
-extern "C" { struct ndn_Name; }
-
 namespace ndn {
   
+class NameComponent {
+public:
+  NameComponent(unsigned char * value, unsigned int valueLen) 
+  : value_(value, value + valueLen)
+  {
+  }
+  
+  /**
+   * Set the componentStruct to point to this component, without copying any memory.
+   * WARNING: The resulting pointer in componentStruct is invalid after a further use of this object which could reallocate memory.
+   * @param componentStruct the C ndn_NameComponent struct to receive the pointer.
+   */
+  void get(struct ndn_NameComponent &componentStruct) 
+  {
+    componentStruct.value = &value_[0];
+    componentStruct.valueLength = value_.size(); 
+  }
+  
+  const std::vector<unsigned char> &getValue() const { return value_; }
+  
+private:
+  std::vector<unsigned char> value_;
+}; 
+  
 class Name {
 public:
-  Name();
+  Name() {
+  }
   Name(const char *uri);
   
   void encode(std::vector<unsigned char> &output, WireFormat &wireFormat) {
@@ -34,23 +58,23 @@
   }
   
   /**
+   * Set the nameStruct to point to the components in this name, without copying any memory.
+   * WARNING: The resulting pointers in nameStruct are invalid after a further use of this object which could reallocate memory.
+   * @param nameStruct a C ndn_Name struct where the components array is already allocated.
+   */
+  void get(struct ndn_Name &nameStruct);
+  
+  /**
    * Clear the name, and set the components by copying from the name struct.
    * @param name a C ndn_Name struct
    */
   void set(struct ndn_Name &nameStruct);
   
   /**
-   * Set the nameStruct to point to the components in this name, without copying any memory.
-   * WARNING: The resulting pointers in nameStruct are invalid after a further use of this name which could reallocate the components memory.
-   * @param nameStruct a C ndn_Name struct where the components array is already allocated.
-   */
-  void get(struct ndn_Name &nameStruct);
-  
-  /**
    * Add a new component, copying from value of length valueLength.
    */
   void addComponent(unsigned char *value, unsigned int valueLength) {
-    components_.push_back(std::vector<unsigned char>(value, value + valueLength));
+    components_.push_back(NameComponent(value, valueLength));
   }
   
   /**
@@ -75,7 +99,7 @@
   std::string to_uri();
   
 private:
-  std::vector<std::vector<unsigned char> > components_;
+  std::vector<NameComponent> components_;
 };  
 
 }
