diff --git a/apps/ndn-consumer-zipf-mandelbrot.cc b/apps/ndn-consumer-zipf-mandelbrot.cc
index 000cc85..faebd6c 100644
--- a/apps/ndn-consumer-zipf-mandelbrot.cc
+++ b/apps/ndn-consumer-zipf-mandelbrot.cc
@@ -174,7 +174,7 @@
   // std::cout << Simulator::Now ().ToDouble (Time::S) << "s -> " << seq << "\n";
 
   //
-  Ptr<NameComponents> nameWithSequence = Create<NameComponents> (m_interestName);
+  Ptr<Name> nameWithSequence = Create<Name> (m_interestName);
   (*nameWithSequence) (seq);
   //
 
diff --git a/apps/ndn-consumer.cc b/apps/ndn-consumer.cc
index 1b85cfb..24b4bde 100644
--- a/apps/ndn-consumer.cc
+++ b/apps/ndn-consumer.cc
@@ -64,8 +64,8 @@
 
     .AddAttribute ("Prefix","Name of the Interest",
                    StringValue ("/"),
-                   MakeNameComponentsAccessor (&Consumer::m_interestName),
-                   MakeNameComponentsChecker ())
+                   MakeNameAccessor (&Consumer::m_interestName),
+                   MakeNameChecker ())
     .AddAttribute ("LifeTime", "LifeTime for interest packet",
                    StringValue ("2s"),
                    MakeTimeAccessor (&Consumer::m_interestLifeTime),
@@ -198,7 +198,7 @@
     }
 
   //
-  Ptr<NameComponents> nameWithSequence = Create<NameComponents> (m_interestName);
+  Ptr<Name> nameWithSequence = Create<Name> (m_interestName);
   (*nameWithSequence) (seq);
   //
 
diff --git a/apps/ndn-consumer.h b/apps/ndn-consumer.h
index 75705cd..918d946 100644
--- a/apps/ndn-consumer.h
+++ b/apps/ndn-consumer.h
@@ -24,7 +24,7 @@
 
 #include "ndn-app.h"
 #include "ns3/random-variable.h"
-#include "ns3/ndn-name-components.h"
+#include "ns3/ndn-name.h"
 #include "ns3/nstime.h"
 #include "ns3/data-rate.h"
 #include "ns3/ndn-rtt-estimator.h"
@@ -126,7 +126,7 @@
   Ptr<RttEstimator> m_rtt; ///< @brief RTT estimator
 
   Time               m_offTime;             ///< \brief Time interval between packets
-  NameComponents     m_interestName;        ///< \brief NDN Name of the Interest (use NameComponents)
+  Name     m_interestName;        ///< \brief NDN Name of the Interest (use Name)
   Time               m_interestLifeTime;    ///< \brief LifeTime for interest packet
 
 /// @cond include_hidden
diff --git a/apps/ndn-producer.cc b/apps/ndn-producer.cc
index f0d464a..00f374e 100644
--- a/apps/ndn-producer.cc
+++ b/apps/ndn-producer.cc
@@ -54,8 +54,8 @@
     .AddConstructor<Producer> ()
     .AddAttribute ("Prefix","Prefix, for which producer has the data",
                    StringValue ("/"),
-                   MakeNameComponentsAccessor (&Producer::m_prefix),
-                   MakeNameComponentsChecker ())
+                   MakeNameAccessor (&Producer::m_prefix),
+                   MakeNameChecker ())
     .AddAttribute ("PayloadSize", "Virtual payload size for Content packets",
                    UintegerValue (1024),
                    MakeUintegerAccessor(&Producer::m_virtualPayloadSize),
@@ -118,7 +118,7 @@
     
   static ContentObjectTail tail;
   Ptr<ContentObjectHeader> header = Create<ContentObjectHeader> ();
-  header->SetName (Create<NameComponents> (interest->GetName ()));
+  header->SetName (Create<Name> (interest->GetName ()));
   header->SetFreshness (m_freshness);
 
   NS_LOG_INFO ("node("<< GetNode()->GetId() <<") respodning with ContentObject:\n" << boost::cref(*header));
diff --git a/apps/ndn-producer.h b/apps/ndn-producer.h
index dcc9581..f383643 100644
--- a/apps/ndn-producer.h
+++ b/apps/ndn-producer.h
@@ -25,7 +25,7 @@
 #include "ndn-app.h"
 
 #include "ns3/ptr.h"
-#include "ns3/ndn-name-components.h"
+#include "ns3/ndn-name.h"
 #include "ns3/ndn-content-object.h"
 
 namespace ns3 {
@@ -59,7 +59,7 @@
   StopApplication ();     // Called at time specified by Stop
 
 private:
-  NameComponents m_prefix;
+  Name m_prefix;
   uint32_t m_virtualPayloadSize;
   Time m_freshness;
 };
