all: InterestHeader and ContentObjectHeader refactoring to Interest and ContentObject

refs #29
diff --git a/apps/ndn-app.cc b/apps/ndn-app.cc
index dcf164d..d29f509 100644
--- a/apps/ndn-app.cc
+++ b/apps/ndn-app.cc
@@ -101,21 +101,21 @@
 }
 
 void
-App::OnInterest (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet)
+App::OnInterest (const Ptr<const Interest> &interest, Ptr<Packet> packet)
 {
   NS_LOG_FUNCTION (this << interest);
   m_receivedInterests (interest, this, m_face);
 }
 
 void
-App::OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet)
+App::OnNack (const Ptr<const Interest> &interest, Ptr<Packet> packet)
 {
   NS_LOG_FUNCTION (this << interest);
   m_receivedNacks (interest, this, m_face);
 }
 
 void
-App::OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+App::OnContentObject (const Ptr<const ContentObject> &contentObject,
                           Ptr<Packet> payload)
 {
   NS_LOG_FUNCTION (this << contentObject << payload);
diff --git a/apps/ndn-app.h b/apps/ndn-app.h
index 94fb4a7..749dc9e 100644
--- a/apps/ndn-app.h
+++ b/apps/ndn-app.h
@@ -32,8 +32,8 @@
 
 namespace ndn {
 
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 class Face;
 
 /**
@@ -77,14 +77,14 @@
    *                 may be useful to get packet tags
    */
   virtual void
-  OnInterest (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet);
+  OnInterest (const Ptr<const Interest> &interest, Ptr<Packet> packet);
 
   /**
    * @brief Method that will be called every time new NACK arrives
    * @param interest Interest header
    */
   virtual void
-  OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet);
+  OnNack (const Ptr<const Interest> &interest, Ptr<Packet> packet);
   
   /**
    * @brief Method that will be called every time new ContentObject arrives
@@ -92,7 +92,7 @@
    * @param payload payload (potentially virtual) of the ContentObject packet (may include packet tags of original packet)
    */
   virtual void
-  OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+  OnContentObject (const Ptr<const ContentObject> &contentObject,
                    Ptr<Packet> payload);
   
 protected:
@@ -114,20 +114,20 @@
   bool m_active;  ///< @brief Flag to indicate that application is active (set by StartApplication and StopApplication)
   Ptr<Face> m_face;   ///< @brief automatically created application face through which application communicates
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<App>, Ptr<Face> > m_receivedInterests; ///< @brief App-level trace of received Interests
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<App>, Ptr<Face> > m_receivedNacks; ///< @brief App-level trace of received NACKs
 
-  TracedCallback<Ptr<const ContentObjectHeader>, Ptr<const Packet>,
+  TracedCallback<Ptr<const ContentObject>, Ptr<const Packet>,
                  Ptr<App>, Ptr<Face> > m_receivedContentObjects; ///< @brief App-level trace of received Data
 
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<App>, Ptr<Face> > m_transmittedInterests; ///< @brief App-level trace of transmitted Interests
 
-  TracedCallback<Ptr<const ContentObjectHeader>, Ptr<const Packet>,
+  TracedCallback<Ptr<const ContentObject>, Ptr<const Packet>,
                  Ptr<App>, Ptr<Face> > m_transmittedContentObjects; ///< @brief App-level trace of transmitted Data
 };
 
diff --git a/apps/ndn-consumer-batches.h b/apps/ndn-consumer-batches.h
index a8c67b7..22b9b0c 100644
--- a/apps/ndn-consumer-batches.h
+++ b/apps/ndn-consumer-batches.h
@@ -44,13 +44,13 @@
 
   // From App
   // virtual void
-  // OnInterest (const Ptr<const InterestHeader> &interest);
+  // OnInterest (const Ptr<const Interest> &interest);
 
   // virtual void
-  // OnNack (const Ptr<const InterestHeader> &interest);
+  // OnNack (const Ptr<const Interest> &interest);
 
   // virtual void
-  // OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+  // OnContentObject (const Ptr<const ContentObject> &contentObject,
   //                  const Ptr<const Packet> &payload);
 
   // virtual void
diff --git a/apps/ndn-consumer-cbr.cc b/apps/ndn-consumer-cbr.cc
index 84fdd18..6ddedd8 100644
--- a/apps/ndn-consumer-cbr.cc
+++ b/apps/ndn-consumer-cbr.cc
@@ -137,14 +137,14 @@
 ///////////////////////////////////////////////////
 
 // void
-// Consumer::OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+// Consumer::OnContentObject (const Ptr<const ContentObject> &contentObject,
 //                                const Ptr<const Packet> &payload)
 // {
 //   Consumer::OnContentObject (contentObject, payload); // tracing inside
 // }
 
 // void
-// Consumer::OnNack (const Ptr<const InterestHeader> &interest)
+// Consumer::OnNack (const Ptr<const Interest> &interest)
 // {
 //   Consumer::OnNack (interest); // tracing inside
 // }
diff --git a/apps/ndn-consumer-cbr.h b/apps/ndn-consumer-cbr.h
index 01e84a5..6143268 100644
--- a/apps/ndn-consumer-cbr.h
+++ b/apps/ndn-consumer-cbr.h
@@ -45,13 +45,13 @@
 
   // From NdnApp
   // virtual void
-  // OnInterest (const Ptr<const InterestHeader> &interest);
+  // OnInterest (const Ptr<const Interest> &interest);
 
   // virtual void
-  // OnNack (const Ptr<const InterestHeader> &interest);
+  // OnNack (const Ptr<const Interest> &interest);
 
   // virtual void
-  // OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+  // OnContentObject (const Ptr<const ContentObject> &contentObject,
   //                  const Ptr<const Packet> &payload);
 
 protected:
diff --git a/apps/ndn-consumer-window.cc b/apps/ndn-consumer-window.cc
index f214a9e..7e8325d 100644
--- a/apps/ndn-consumer-window.cc
+++ b/apps/ndn-consumer-window.cc
@@ -162,7 +162,7 @@
 ///////////////////////////////////////////////////
 
 void
-ConsumerWindow::OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+ConsumerWindow::OnContentObject (const Ptr<const ContentObject> &contentObject,
                                      Ptr<Packet> payload)
 {
   Consumer::OnContentObject (contentObject, payload);
@@ -176,7 +176,7 @@
 }
 
 void
-ConsumerWindow::OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> payload)
+ConsumerWindow::OnNack (const Ptr<const Interest> &interest, Ptr<Packet> payload)
 {
   Consumer::OnNack (interest, payload);
 
diff --git a/apps/ndn-consumer-window.h b/apps/ndn-consumer-window.h
index 32ad8aa..df79fb3 100644
--- a/apps/ndn-consumer-window.h
+++ b/apps/ndn-consumer-window.h
@@ -47,13 +47,13 @@
 
   // From App
   // virtual void
-  // OnInterest (const Ptr<const InterestHeader> &interest);
+  // OnInterest (const Ptr<const Interest> &interest);
 
   virtual void
-  OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> payload);
+  OnNack (const Ptr<const Interest> &interest, Ptr<Packet> payload);
 
   virtual void
-  OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+  OnContentObject (const Ptr<const ContentObject> &contentObject,
                    Ptr<Packet> payload);
 
   virtual void
diff --git a/apps/ndn-consumer-zipf-mandelbrot.cc b/apps/ndn-consumer-zipf-mandelbrot.cc
index faebd6c..5d5d760 100644
--- a/apps/ndn-consumer-zipf-mandelbrot.cc
+++ b/apps/ndn-consumer-zipf-mandelbrot.cc
@@ -178,7 +178,7 @@
   (*nameWithSequence) (seq);
   //
 
-  InterestHeader interestHeader;
+  Interest interestHeader;
   interestHeader.SetNonce (m_rand.GetValue ());
   interestHeader.SetName  (nameWithSequence);
 
diff --git a/apps/ndn-consumer.cc b/apps/ndn-consumer.cc
index 24b4bde..e579312 100644
--- a/apps/ndn-consumer.cc
+++ b/apps/ndn-consumer.cc
@@ -202,7 +202,7 @@
   (*nameWithSequence) (seq);
   //
 
-  InterestHeader interestHeader;
+  Interest interestHeader;
   interestHeader.SetNonce               (m_rand.GetValue ());
   interestHeader.SetName                (nameWithSequence);
   interestHeader.SetInterestLifetime    (m_interestLifeTime);
@@ -242,7 +242,7 @@
 
 
 void
-Consumer::OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+Consumer::OnContentObject (const Ptr<const ContentObject> &contentObject,
                                Ptr<Packet> payload)
 {
   if (!m_active) return;
@@ -286,7 +286,7 @@
 }
 
 void
-Consumer::OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> origPacket)
+Consumer::OnNack (const Ptr<const Interest> &interest, Ptr<Packet> origPacket)
 {
   if (!m_active) return;
 
diff --git a/apps/ndn-consumer.h b/apps/ndn-consumer.h
index 918d946..b748c2a 100644
--- a/apps/ndn-consumer.h
+++ b/apps/ndn-consumer.h
@@ -58,13 +58,13 @@
 
   // From App
   // virtual void
-  // OnInterest (const Ptr<const InterestHeader> &interest);
+  // OnInterest (const Ptr<const Interest> &interest);
 
   virtual void
-  OnNack (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet);
+  OnNack (const Ptr<const Interest> &interest, Ptr<Packet> packet);
 
   virtual void
-  OnContentObject (const Ptr<const ContentObjectHeader> &contentObject,
+  OnContentObject (const Ptr<const ContentObject> &contentObject,
                    Ptr<Packet> payload);
 
   /**
diff --git a/apps/ndn-producer.cc b/apps/ndn-producer.cc
index 00f374e..90ccce0 100644
--- a/apps/ndn-producer.cc
+++ b/apps/ndn-producer.cc
@@ -108,7 +108,7 @@
 
 
 void
-Producer::OnInterest (const Ptr<const InterestHeader> &interest, Ptr<Packet> origPacket)
+Producer::OnInterest (const Ptr<const Interest> &interest, Ptr<Packet> origPacket)
 {
   App::OnInterest (interest, origPacket); // tracing inside
 
@@ -117,7 +117,7 @@
   if (!m_active) return;
     
   static ContentObjectTail tail;
-  Ptr<ContentObjectHeader> header = Create<ContentObjectHeader> ();
+  Ptr<ContentObject> header = Create<ContentObject> ();
   header->SetName (Create<Name> (interest->GetName ()));
   header->SetFreshness (m_freshness);
 
diff --git a/apps/ndn-producer.h b/apps/ndn-producer.h
index f383643..bce01d3 100644
--- a/apps/ndn-producer.h
+++ b/apps/ndn-producer.h
@@ -48,7 +48,7 @@
   Producer ();
 
   // inherited from NdnApp
-  void OnInterest (const Ptr<const InterestHeader> &interest, Ptr<Packet> packet);
+  void OnInterest (const Ptr<const Interest> &interest, Ptr<Packet> packet);
 
 protected:
   // inherited from Application base class.
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index 941d104..31b7c2e 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -170,12 +170,12 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TopologyReader', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TopologyReader>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TraceSourceAccessor>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::ContentObjectHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::ContentObject', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::ContentObject>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::FaceContainer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::FaceContainer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::InterestHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::InterestHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::Interest', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::Interest>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::Name', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::Name>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> > [class]
@@ -326,10 +326,10 @@
     module.add_class('App', parent=root_module['ns3::Application'])
     ## ndn-app-helper.h (module 'ndnSIM'): ns3::ndn::AppHelper [class]
     module.add_class('AppHelper')
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader [class]
-    module.add_class('ContentObjectHeader', parent=root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException [class]
-    module.add_class('ContentObjectHeaderException')
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject [class]
+    module.add_class('ContentObject', parent=root_module['ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >'])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException [class]
+    module.add_class('ContentObjectException')
     ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectTail [class]
     module.add_class('ContentObjectTail', parent=root_module['ns3::Trailer'])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::ContentStore [class]
@@ -348,12 +348,12 @@
     module.add_class('HeaderHelper')
     ## ndn-header-helper.h (module 'ndnSIM'): ns3::ndn::HeaderHelper::Type [enumeration]
     module.add_enum('Type', ['INTEREST_CCNB', 'CONTENT_OBJECT_CCNB', 'INTEREST_NDNSIM', 'CONTENT_OBJECT_NDNSIM'], outer_class=root_module['ns3::ndn::HeaderHelper'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader [class]
-    module.add_class('InterestHeader', parent=root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader [enumeration]
-    module.add_enum('', ['NORMAL_INTEREST', 'NACK_LOOP', 'NACK_CONGESTION', 'NACK_GIVEUP_PIT'], outer_class=root_module['ns3::ndn::InterestHeader'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException [class]
-    module.add_class('InterestHeaderException')
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest [class]
+    module.add_class('Interest', parent=root_module['ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >'])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest [enumeration]
+    module.add_enum('', ['NORMAL_INTEREST', 'NACK_LOOP', 'NACK_CONGESTION', 'NACK_GIVEUP_PIT'], outer_class=root_module['ns3::ndn::Interest'])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException [class]
+    module.add_class('InterestException')
     ## ndn-l3-protocol.h (module 'ndnSIM'): ns3::ndn::L3Protocol [class]
     module.add_class('L3Protocol', parent=root_module['ns3::Object'])
     ## ndn-limits.h (module 'ndnSIM'): ns3::ndn::Limits [class]
@@ -537,9 +537,9 @@
     register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     register_Ns3SimpleRefCount__Ns3TopologyReader_Ns3Empty_Ns3DefaultDeleter__lt__ns3TopologyReader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> >'])
     register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
-    register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
+    register_Ns3SimpleRefCount__Ns3NdnContentObject_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObject__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >'])
     register_Ns3SimpleRefCount__Ns3NdnFaceContainer_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnFaceContainer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> >'])
-    register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
+    register_Ns3SimpleRefCount__Ns3NdnInterest_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterest__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >'])
     register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
     register_Ns3SimpleRefCount__Ns3NdnCsEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnCsEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> >'])
     register_Ns3SimpleRefCount__Ns3NdnPitEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnPitEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> >'])
@@ -590,8 +590,8 @@
     register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
     register_Ns3NdnApp_methods(root_module, root_module['ns3::ndn::App'])
     register_Ns3NdnAppHelper_methods(root_module, root_module['ns3::ndn::AppHelper'])
-    register_Ns3NdnContentObjectHeader_methods(root_module, root_module['ns3::ndn::ContentObjectHeader'])
-    register_Ns3NdnContentObjectHeaderException_methods(root_module, root_module['ns3::ndn::ContentObjectHeaderException'])
+    register_Ns3NdnContentObject_methods(root_module, root_module['ns3::ndn::ContentObject'])
+    register_Ns3NdnContentObjectException_methods(root_module, root_module['ns3::ndn::ContentObjectException'])
     register_Ns3NdnContentObjectTail_methods(root_module, root_module['ns3::ndn::ContentObjectTail'])
     register_Ns3NdnContentStore_methods(root_module, root_module['ns3::ndn::ContentStore'])
     register_Ns3NdnFace_methods(root_module, root_module['ns3::ndn::Face'])
@@ -600,8 +600,8 @@
     register_Ns3NdnForwardingStrategy_methods(root_module, root_module['ns3::ndn::ForwardingStrategy'])
     register_Ns3NdnGlobalRoutingHelper_methods(root_module, root_module['ns3::ndn::GlobalRoutingHelper'])
     register_Ns3NdnHeaderHelper_methods(root_module, root_module['ns3::ndn::HeaderHelper'])
-    register_Ns3NdnInterestHeader_methods(root_module, root_module['ns3::ndn::InterestHeader'])
-    register_Ns3NdnInterestHeaderException_methods(root_module, root_module['ns3::ndn::InterestHeaderException'])
+    register_Ns3NdnInterest_methods(root_module, root_module['ns3::ndn::Interest'])
+    register_Ns3NdnInterestException_methods(root_module, root_module['ns3::ndn::InterestException'])
     register_Ns3NdnL3Protocol_methods(root_module, root_module['ns3::ndn::L3Protocol'])
     register_Ns3NdnLimits_methods(root_module, root_module['ns3::ndn::Limits'])
     register_Ns3NdnName_methods(root_module, root_module['ns3::ndn::Name'])
@@ -2964,12 +2964,12 @@
                    is_static=True)
     return
 
-def register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, cls):
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnContentObject_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObject__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> > const & o) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter< ns3::ndn::ContentObjectHeader > > const &', 'o')])
-    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::Cleanup() [member function]
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter< ns3::ndn::ContentObject > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::Cleanup() [member function]
     cls.add_method('Cleanup', 
                    'void', 
                    [], 
@@ -2988,12 +2988,12 @@
                    is_static=True)
     return
 
-def register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, cls):
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnInterest_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterest__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > const & o) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter< ns3::ndn::InterestHeader > > const &', 'o')])
-    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::Cleanup() [member function]
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter< ns3::ndn::Interest > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::Cleanup() [member function]
     cls.add_method('Cleanup', 
                    'void', 
                    [], 
@@ -4700,20 +4700,20 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnContentObject(ns3::Ptr<ns3::ndn::ContentObjectHeader const> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnContentObject(ns3::Ptr<ns3::ndn::ContentObject const> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
     cls.add_method('OnContentObject', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::ContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
+                   [param('ns3::Ptr< ns3::ndn::ContentObject const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
                    is_virtual=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnInterest(ns3::Ptr<ns3::ndn::InterestHeader const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnInterest(ns3::Ptr<ns3::ndn::Interest const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnNack(ns3::Ptr<ns3::ndn::InterestHeader const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnNack(ns3::Ptr<ns3::ndn::Interest const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnNack', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
     ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::RegisterProtocolHandler(ns3::Callback<bool, ns3::Ptr<ns3::Packet const> const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> handler) [member function]
     cls.add_method('RegisterProtocolHandler', 
@@ -4763,80 +4763,80 @@
                    [param('std::string const &', 'prefix')])
     return
 
-def register_Ns3NdnContentObjectHeader_methods(root_module, cls):
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader::ContentObjectHeader(ns3::ndn::ContentObjectHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::ContentObjectHeader const &', 'arg0')])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader::ContentObjectHeader() [constructor]
+def register_Ns3NdnContentObject_methods(root_module, cls):
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject::ContentObject(ns3::ndn::ContentObject const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::ContentObject const &', 'arg0')])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject::ContentObject() [constructor]
     cls.add_constructor([])
-    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObjectHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObject::Deserialize(ns3::Buffer::Iterator start) [member function]
     cls.add_method('Deserialize', 
                    'uint32_t', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObjectHeader::GetFreshness() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObject::GetFreshness() const [member function]
     cls.add_method('GetFreshness', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::ContentObjectHeader::GetInstanceTypeId() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::ContentObject::GetInstanceTypeId() const [member function]
     cls.add_method('GetInstanceTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::ContentObjectHeader::GetName() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::ContentObject::GetName() const [member function]
     cls.add_method('GetName', 
                    'ns3::ndn::Name const &', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::ContentObjectHeader::GetNamePtr() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::ContentObject::GetNamePtr() const [member function]
     cls.add_method('GetNamePtr', 
                    'ns3::Ptr< ns3::ndn::Name const >', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObjectHeader::GetSerializedSize() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObject::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObjectHeader::GetTimestamp() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObject::GetTimestamp() const [member function]
     cls.add_method('GetTimestamp', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::ContentObjectHeader::GetTypeId() [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::ContentObject::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::Print(std::ostream & os) const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::Print(std::ostream & os) const [member function]
     cls.add_method('Print', 
                    'void', 
                    [param('std::ostream &', 'os')], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::Serialize(ns3::Buffer::Iterator start) const [member function]
     cls.add_method('Serialize', 
                    'void', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetFreshness(ns3::Time const & freshness) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetFreshness(ns3::Time const & freshness) [member function]
     cls.add_method('SetFreshness', 
                    'void', 
                    [param('ns3::Time const &', 'freshness')])
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetName(ns3::Ptr<ns3::ndn::Name> const & name) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetName(ns3::Ptr<ns3::ndn::Name> const & name) [member function]
     cls.add_method('SetName', 
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::Name > const &', 'name')])
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetTimestamp(ns3::Time const & timestamp) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetTimestamp(ns3::Time const & timestamp) [member function]
     cls.add_method('SetTimestamp', 
                    'void', 
                    [param('ns3::Time const &', 'timestamp')])
     return
 
-def register_Ns3NdnContentObjectHeaderException_methods(root_module, cls):
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException::ContentObjectHeaderException() [constructor]
+def register_Ns3NdnContentObjectException_methods(root_module, cls):
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException::ContentObjectException() [constructor]
     cls.add_constructor([])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException::ContentObjectHeaderException(ns3::ndn::ContentObjectHeaderException const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::ContentObjectHeaderException const &', 'arg0')])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException::ContentObjectException(ns3::ndn::ContentObjectException const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::ContentObjectException const &', 'arg0')])
     return
 
 def register_Ns3NdnContentObjectTail_methods(root_module, cls):
@@ -4882,10 +4882,10 @@
     cls.add_constructor([])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::ContentStore::ContentStore(ns3::ndn::ContentStore const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::ContentStore const &', 'arg0')])
-    ## ndn-content-store.h (module 'ndnSIM'): bool ns3::ndn::ContentStore::Add(ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> packet) [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): bool ns3::ndn::ContentStore::Add(ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> packet) [member function]
     cls.add_method('Add', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::cs::Entry> ns3::ndn::ContentStore::Begin() [member function]
     cls.add_method('Begin', 
@@ -4912,10 +4912,10 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-content-store.h (module 'ndnSIM'): boost::tuples::tuple<ns3::Ptr<ns3::Packet>,ns3::Ptr<const ns3::ndn::ContentObjectHeader>,ns3::Ptr<const ns3::Packet>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> ns3::ndn::ContentStore::Lookup(ns3::Ptr<ns3::ndn::InterestHeader const> interest) [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): boost::tuples::tuple<ns3::Ptr<ns3::Packet>,ns3::Ptr<const ns3::ndn::ContentObject>,ns3::Ptr<const ns3::Packet>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> ns3::ndn::ContentStore::Lookup(ns3::Ptr<ns3::ndn::Interest const> interest) [member function]
     cls.add_method('Lookup', 
-                   'boost::tuples::tuple< ns3::Ptr< ns3::Packet >, ns3::Ptr< ns3::ndn::ContentObjectHeader const >, ns3::Ptr< ns3::Packet const >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type >', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'interest')], 
+                   'boost::tuples::tuple< ns3::Ptr< ns3::Packet >, ns3::Ptr< ns3::ndn::ContentObject const >, ns3::Ptr< ns3::Packet const >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type >', 
+                   [param('ns3::Ptr< ns3::ndn::Interest const >', 'interest')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::cs::Entry> ns3::ndn::ContentStore::Next(ns3::Ptr<ns3::ndn::cs::Entry> arg0) [member function]
     cls.add_method('Next', 
@@ -5093,10 +5093,10 @@
                    'void', 
                    [], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::fib::Entry> ns3::ndn::Fib::LongestPrefixMatch(ns3::ndn::InterestHeader const & interest) [member function]
+    ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::fib::Entry> ns3::ndn::Fib::LongestPrefixMatch(ns3::ndn::Interest const & interest) [member function]
     cls.add_method('LongestPrefixMatch', 
                    'ns3::Ptr< ns3::ndn::fib::Entry >', 
-                   [param('ns3::ndn::InterestHeader const &', 'interest')], 
+                   [param('ns3::ndn::Interest const &', 'interest')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<const ns3::ndn::fib::Entry> ns3::ndn::Fib::Next(ns3::Ptr<const ns3::ndn::fib::Entry> arg0) const [member function]
     cls.add_method('Next', 
@@ -5150,15 +5150,15 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnData(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnData(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('OnData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnInterest(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnInterest(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::RemoveFace(ns3::Ptr<ns3::ndn::Face> face) [member function]
     cls.add_method('RemoveFace', 
@@ -5175,100 +5175,100 @@
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')], 
                    is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('CanSendOutInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DetectRetransmittedInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DetectRetransmittedInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DetectRetransmittedInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidCreatePitEntry', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidExhaustForwardingOptions(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidExhaustForwardingOptions(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidExhaustForwardingOptions', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidForwardSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidForwardSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidForwardSimilarInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveDuplicateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveDuplicateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidReceiveDuplicateInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveSolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveSolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
     cls.add_method('DidReceiveSolicitedData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveUnsolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveUnsolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
     cls.add_method('DidReceiveUnsolicitedData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSendOutData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSendOutInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSuppressSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSuppressSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSuppressSimilarInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DoPropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DoPropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DoPropagateInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    is_pure_virtual=True, visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::FailedToCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::FailedToCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('FailedToCreatePitEntry', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::NotifyNewAggregate() [member function]
     cls.add_method('NotifyNewAggregate', 
                    'void', 
                    [], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::PropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::PropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('PropagateInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::SatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::SatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('SatisfyPendingInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::ShouldSuppressIncomingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::ShouldSuppressIncomingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('ShouldSuppressIncomingInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::TrySendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::TrySendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('TrySendOutInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::WillSatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('WillSatisfyPendingInterest', 
@@ -5339,103 +5339,103 @@
                    is_static=True)
     return
 
-def register_Ns3NdnInterestHeader_methods(root_module, cls):
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader::InterestHeader() [constructor]
+def register_Ns3NdnInterest_methods(root_module, cls):
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest::Interest() [constructor]
     cls.add_constructor([])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader::InterestHeader(ns3::ndn::InterestHeader const & interest) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::InterestHeader const &', 'interest')])
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest::Interest(ns3::ndn::Interest const & interest) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::Interest const &', 'interest')])
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::Deserialize(ns3::Buffer::Iterator start) [member function]
     cls.add_method('Deserialize', 
                    'uint32_t', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::InterestHeader::GetInstanceTypeId() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::Interest::GetInstanceTypeId() const [member function]
     cls.add_method('GetInstanceTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): static ns3::Ptr<ns3::ndn::InterestHeader> ns3::ndn::InterestHeader::GetInterest(ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): static ns3::Ptr<ns3::ndn::Interest> ns3::ndn::Interest::GetInterest(ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('GetInterest', 
-                   'ns3::Ptr< ns3::ndn::InterestHeader >', 
+                   'ns3::Ptr< ns3::ndn::Interest >', 
                    [param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_static=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::Time ns3::ndn::InterestHeader::GetInterestLifetime() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::Time ns3::ndn::Interest::GetInterestLifetime() const [member function]
     cls.add_method('GetInterestLifetime', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint8_t ns3::ndn::InterestHeader::GetNack() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint8_t ns3::ndn::Interest::GetNack() const [member function]
     cls.add_method('GetNack', 
                    'uint8_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::InterestHeader::GetName() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::Interest::GetName() const [member function]
     cls.add_method('GetName', 
                    'ns3::ndn::Name const &', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::InterestHeader::GetNamePtr() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::Interest::GetNamePtr() const [member function]
     cls.add_method('GetNamePtr', 
                    'ns3::Ptr< ns3::ndn::Name const >', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::GetNonce() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::GetNonce() const [member function]
     cls.add_method('GetNonce', 
                    'uint32_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): int8_t ns3::ndn::InterestHeader::GetScope() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): int8_t ns3::ndn::Interest::GetScope() const [member function]
     cls.add_method('GetScope', 
                    'int8_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::GetSerializedSize() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::InterestHeader::GetTypeId() [member function]
+    ## ndn-interest.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::Interest::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::Print(std::ostream & os) const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::Print(std::ostream & os) const [member function]
     cls.add_method('Print', 
                    'void', 
                    [param('std::ostream &', 'os')], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::Serialize(ns3::Buffer::Iterator start) const [member function]
     cls.add_method('Serialize', 
                    'void', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetInterestLifetime(ns3::Time time) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetInterestLifetime(ns3::Time time) [member function]
     cls.add_method('SetInterestLifetime', 
                    'void', 
                    [param('ns3::Time', 'time')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetNack(uint8_t nackType) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetNack(uint8_t nackType) [member function]
     cls.add_method('SetNack', 
                    'void', 
                    [param('uint8_t', 'nackType')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetName(ns3::Ptr<ns3::ndn::Name> name) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetName(ns3::Ptr<ns3::ndn::Name> name) [member function]
     cls.add_method('SetName', 
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::Name >', 'name')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetNonce(uint32_t nonce) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetNonce(uint32_t nonce) [member function]
     cls.add_method('SetNonce', 
                    'void', 
                    [param('uint32_t', 'nonce')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetScope(int8_t scope) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetScope(int8_t scope) [member function]
     cls.add_method('SetScope', 
                    'void', 
                    [param('int8_t', 'scope')])
     return
 
-def register_Ns3NdnInterestHeaderException_methods(root_module, cls):
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException::InterestHeaderException() [constructor]
+def register_Ns3NdnInterestException_methods(root_module, cls):
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException::InterestException() [constructor]
     cls.add_constructor([])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException::InterestHeaderException(ns3::ndn::InterestHeaderException const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::InterestHeaderException const &', 'arg0')])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException::InterestException(ns3::ndn::InterestException const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::InterestException const &', 'arg0')])
     return
 
 def register_Ns3NdnL3Protocol_methods(root_module, cls):
@@ -5798,10 +5798,10 @@
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
                    [], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Create(ns3::Ptr<ns3::ndn::InterestHeader const> header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Create(ns3::Ptr<ns3::ndn::Interest const> header) [member function]
     cls.add_method('Create', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const >', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::End() [member function]
     cls.add_method('End', 
@@ -5823,15 +5823,15 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::ContentObjectHeader const & header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::ContentObject const & header) [member function]
     cls.add_method('Lookup', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::ndn::ContentObjectHeader const &', 'header')], 
+                   [param('ns3::ndn::ContentObject const &', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::InterestHeader const & header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::Interest const & header) [member function]
     cls.add_method('Lookup', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::ndn::InterestHeader const &', 'header')], 
+                   [param('ns3::ndn::Interest const &', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-pit.h (module 'ndnSIM'): void ns3::ndn::Pit::MarkErased(ns3::Ptr<ns3::ndn::pit::Entry> entry) [member function]
     cls.add_method('MarkErased', 
@@ -6066,8 +6066,8 @@
 def register_Ns3NdnCsEntry_methods(root_module, cls):
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::ndn::cs::Entry const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::cs::Entry const &', 'arg0')])
-    ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::Ptr<ns3::ndn::ContentStore> cs, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> packet) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::ndn::ContentStore >', 'cs'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')])
+    ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::Ptr<ns3::ndn::ContentStore> cs, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> packet) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::ndn::ContentStore >', 'cs'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentStore> ns3::ndn::cs::Entry::GetContentStore() [member function]
     cls.add_method('GetContentStore', 
                    'ns3::Ptr< ns3::ndn::ContentStore >', 
@@ -6077,9 +6077,9 @@
                    'ns3::Ptr< ns3::Packet >', 
                    [], 
                    is_const=True)
-    ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentObjectHeader const> ns3::ndn::cs::Entry::GetHeader() const [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentObject const> ns3::ndn::cs::Entry::GetHeader() const [member function]
     cls.add_method('GetHeader', 
-                   'ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 
+                   'ns3::Ptr< ns3::ndn::ContentObject const >', 
                    [], 
                    is_const=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::cs::Entry::GetName() const [member function]
@@ -6237,8 +6237,8 @@
     cls.add_output_stream_operator()
     ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::pit::Entry const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::pit::Entry const &', 'arg0')])
-    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::Pit & container, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [constructor]
-    cls.add_constructor([param('ns3::ndn::Pit &', 'container'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')])
+    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::Pit & container, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [constructor]
+    cls.add_constructor([param('ns3::ndn::Pit &', 'container'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')])
     ## ndn-pit-entry.h (module 'ndnSIM'): void ns3::ndn::pit::Entry::AddFwTag(boost::shared_ptr<ns3::ndn::fw::Tag> tag) [member function]
     cls.add_method('AddFwTag', 
                    'void', 
@@ -6292,9 +6292,9 @@
                    'std::set< ns3::ndn::pit::IncomingFace > const &', 
                    [], 
                    is_const=True)
-    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::InterestHeader const> ns3::ndn::pit::Entry::GetInterest() const [member function]
+    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Interest const> ns3::ndn::pit::Entry::GetInterest() const [member function]
     cls.add_method('GetInterest', 
-                   'ns3::Ptr< ns3::ndn::InterestHeader const >', 
+                   'ns3::Ptr< ns3::ndn::Interest const >', 
                    [], 
                    is_const=True)
     ## ndn-pit-entry.h (module 'ndnSIM'): uint32_t ns3::ndn::pit::Entry::GetMaxRetxCount() const [member function]
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index 941d104..31b7c2e 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -170,12 +170,12 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TopologyReader', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TopologyReader>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TraceSourceAccessor>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::ContentObjectHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::ContentObject', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::ContentObject>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::FaceContainer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::FaceContainer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::InterestHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::InterestHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::Interest', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::Interest>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::Name', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::Name>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> > [class]
@@ -326,10 +326,10 @@
     module.add_class('App', parent=root_module['ns3::Application'])
     ## ndn-app-helper.h (module 'ndnSIM'): ns3::ndn::AppHelper [class]
     module.add_class('AppHelper')
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader [class]
-    module.add_class('ContentObjectHeader', parent=root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException [class]
-    module.add_class('ContentObjectHeaderException')
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject [class]
+    module.add_class('ContentObject', parent=root_module['ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >'])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException [class]
+    module.add_class('ContentObjectException')
     ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectTail [class]
     module.add_class('ContentObjectTail', parent=root_module['ns3::Trailer'])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::ContentStore [class]
@@ -348,12 +348,12 @@
     module.add_class('HeaderHelper')
     ## ndn-header-helper.h (module 'ndnSIM'): ns3::ndn::HeaderHelper::Type [enumeration]
     module.add_enum('Type', ['INTEREST_CCNB', 'CONTENT_OBJECT_CCNB', 'INTEREST_NDNSIM', 'CONTENT_OBJECT_NDNSIM'], outer_class=root_module['ns3::ndn::HeaderHelper'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader [class]
-    module.add_class('InterestHeader', parent=root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader [enumeration]
-    module.add_enum('', ['NORMAL_INTEREST', 'NACK_LOOP', 'NACK_CONGESTION', 'NACK_GIVEUP_PIT'], outer_class=root_module['ns3::ndn::InterestHeader'])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException [class]
-    module.add_class('InterestHeaderException')
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest [class]
+    module.add_class('Interest', parent=root_module['ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >'])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest [enumeration]
+    module.add_enum('', ['NORMAL_INTEREST', 'NACK_LOOP', 'NACK_CONGESTION', 'NACK_GIVEUP_PIT'], outer_class=root_module['ns3::ndn::Interest'])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException [class]
+    module.add_class('InterestException')
     ## ndn-l3-protocol.h (module 'ndnSIM'): ns3::ndn::L3Protocol [class]
     module.add_class('L3Protocol', parent=root_module['ns3::Object'])
     ## ndn-limits.h (module 'ndnSIM'): ns3::ndn::Limits [class]
@@ -537,9 +537,9 @@
     register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     register_Ns3SimpleRefCount__Ns3TopologyReader_Ns3Empty_Ns3DefaultDeleter__lt__ns3TopologyReader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> >'])
     register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
-    register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
+    register_Ns3SimpleRefCount__Ns3NdnContentObject_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObject__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >'])
     register_Ns3SimpleRefCount__Ns3NdnFaceContainer_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnFaceContainer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> >'])
-    register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
+    register_Ns3SimpleRefCount__Ns3NdnInterest_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterest__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >'])
     register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
     register_Ns3SimpleRefCount__Ns3NdnCsEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnCsEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> >'])
     register_Ns3SimpleRefCount__Ns3NdnPitEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnPitEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> >'])
@@ -590,8 +590,8 @@
     register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
     register_Ns3NdnApp_methods(root_module, root_module['ns3::ndn::App'])
     register_Ns3NdnAppHelper_methods(root_module, root_module['ns3::ndn::AppHelper'])
-    register_Ns3NdnContentObjectHeader_methods(root_module, root_module['ns3::ndn::ContentObjectHeader'])
-    register_Ns3NdnContentObjectHeaderException_methods(root_module, root_module['ns3::ndn::ContentObjectHeaderException'])
+    register_Ns3NdnContentObject_methods(root_module, root_module['ns3::ndn::ContentObject'])
+    register_Ns3NdnContentObjectException_methods(root_module, root_module['ns3::ndn::ContentObjectException'])
     register_Ns3NdnContentObjectTail_methods(root_module, root_module['ns3::ndn::ContentObjectTail'])
     register_Ns3NdnContentStore_methods(root_module, root_module['ns3::ndn::ContentStore'])
     register_Ns3NdnFace_methods(root_module, root_module['ns3::ndn::Face'])
@@ -600,8 +600,8 @@
     register_Ns3NdnForwardingStrategy_methods(root_module, root_module['ns3::ndn::ForwardingStrategy'])
     register_Ns3NdnGlobalRoutingHelper_methods(root_module, root_module['ns3::ndn::GlobalRoutingHelper'])
     register_Ns3NdnHeaderHelper_methods(root_module, root_module['ns3::ndn::HeaderHelper'])
-    register_Ns3NdnInterestHeader_methods(root_module, root_module['ns3::ndn::InterestHeader'])
-    register_Ns3NdnInterestHeaderException_methods(root_module, root_module['ns3::ndn::InterestHeaderException'])
+    register_Ns3NdnInterest_methods(root_module, root_module['ns3::ndn::Interest'])
+    register_Ns3NdnInterestException_methods(root_module, root_module['ns3::ndn::InterestException'])
     register_Ns3NdnL3Protocol_methods(root_module, root_module['ns3::ndn::L3Protocol'])
     register_Ns3NdnLimits_methods(root_module, root_module['ns3::ndn::Limits'])
     register_Ns3NdnName_methods(root_module, root_module['ns3::ndn::Name'])
@@ -2964,12 +2964,12 @@
                    is_static=True)
     return
 
-def register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, cls):
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnContentObject_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObject__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> > const & o) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter< ns3::ndn::ContentObjectHeader > > const &', 'o')])
-    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >::Cleanup() [member function]
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter< ns3::ndn::ContentObject > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::ContentObject, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObject> >::Cleanup() [member function]
     cls.add_method('Cleanup', 
                    'void', 
                    [], 
@@ -2988,12 +2988,12 @@
                    is_static=True)
     return
 
-def register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, cls):
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnInterest_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterest__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
-    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > const & o) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter< ns3::ndn::InterestHeader > > const &', 'o')])
-    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >::Cleanup() [member function]
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter< ns3::ndn::Interest > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::Interest, ns3::Header, ns3::DefaultDeleter<ns3::ndn::Interest> >::Cleanup() [member function]
     cls.add_method('Cleanup', 
                    'void', 
                    [], 
@@ -4700,20 +4700,20 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnContentObject(ns3::Ptr<ns3::ndn::ContentObjectHeader const> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnContentObject(ns3::Ptr<ns3::ndn::ContentObject const> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
     cls.add_method('OnContentObject', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::ContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
+                   [param('ns3::Ptr< ns3::ndn::ContentObject const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
                    is_virtual=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnInterest(ns3::Ptr<ns3::ndn::InterestHeader const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnInterest(ns3::Ptr<ns3::ndn::Interest const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
-    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnNack(ns3::Ptr<ns3::ndn::InterestHeader const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::OnNack(ns3::Ptr<ns3::ndn::Interest const> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnNack', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
     ## ndn-app.h (module 'ndnSIM'): void ns3::ndn::App::RegisterProtocolHandler(ns3::Callback<bool, ns3::Ptr<ns3::Packet const> const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> handler) [member function]
     cls.add_method('RegisterProtocolHandler', 
@@ -4763,80 +4763,80 @@
                    [param('std::string const &', 'prefix')])
     return
 
-def register_Ns3NdnContentObjectHeader_methods(root_module, cls):
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader::ContentObjectHeader(ns3::ndn::ContentObjectHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::ContentObjectHeader const &', 'arg0')])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeader::ContentObjectHeader() [constructor]
+def register_Ns3NdnContentObject_methods(root_module, cls):
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject::ContentObject(ns3::ndn::ContentObject const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::ContentObject const &', 'arg0')])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObject::ContentObject() [constructor]
     cls.add_constructor([])
-    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObjectHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObject::Deserialize(ns3::Buffer::Iterator start) [member function]
     cls.add_method('Deserialize', 
                    'uint32_t', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObjectHeader::GetFreshness() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObject::GetFreshness() const [member function]
     cls.add_method('GetFreshness', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::ContentObjectHeader::GetInstanceTypeId() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::ContentObject::GetInstanceTypeId() const [member function]
     cls.add_method('GetInstanceTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::ContentObjectHeader::GetName() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::ContentObject::GetName() const [member function]
     cls.add_method('GetName', 
                    'ns3::ndn::Name const &', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::ContentObjectHeader::GetNamePtr() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::ContentObject::GetNamePtr() const [member function]
     cls.add_method('GetNamePtr', 
                    'ns3::Ptr< ns3::ndn::Name const >', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObjectHeader::GetSerializedSize() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): uint32_t ns3::ndn::ContentObject::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObjectHeader::GetTimestamp() const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::Time ns3::ndn::ContentObject::GetTimestamp() const [member function]
     cls.add_method('GetTimestamp', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-content-object.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::ContentObjectHeader::GetTypeId() [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::ContentObject::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::Print(std::ostream & os) const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::Print(std::ostream & os) const [member function]
     cls.add_method('Print', 
                    'void', 
                    [param('std::ostream &', 'os')], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::Serialize(ns3::Buffer::Iterator start) const [member function]
     cls.add_method('Serialize', 
                    'void', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_const=True, is_virtual=True)
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetFreshness(ns3::Time const & freshness) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetFreshness(ns3::Time const & freshness) [member function]
     cls.add_method('SetFreshness', 
                    'void', 
                    [param('ns3::Time const &', 'freshness')])
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetName(ns3::Ptr<ns3::ndn::Name> const & name) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetName(ns3::Ptr<ns3::ndn::Name> const & name) [member function]
     cls.add_method('SetName', 
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::Name > const &', 'name')])
-    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObjectHeader::SetTimestamp(ns3::Time const & timestamp) [member function]
+    ## ndn-content-object.h (module 'ndnSIM'): void ns3::ndn::ContentObject::SetTimestamp(ns3::Time const & timestamp) [member function]
     cls.add_method('SetTimestamp', 
                    'void', 
                    [param('ns3::Time const &', 'timestamp')])
     return
 
-def register_Ns3NdnContentObjectHeaderException_methods(root_module, cls):
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException::ContentObjectHeaderException() [constructor]
+def register_Ns3NdnContentObjectException_methods(root_module, cls):
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException::ContentObjectException() [constructor]
     cls.add_constructor([])
-    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectHeaderException::ContentObjectHeaderException(ns3::ndn::ContentObjectHeaderException const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::ContentObjectHeaderException const &', 'arg0')])
+    ## ndn-content-object.h (module 'ndnSIM'): ns3::ndn::ContentObjectException::ContentObjectException(ns3::ndn::ContentObjectException const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::ContentObjectException const &', 'arg0')])
     return
 
 def register_Ns3NdnContentObjectTail_methods(root_module, cls):
@@ -4882,10 +4882,10 @@
     cls.add_constructor([])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::ContentStore::ContentStore(ns3::ndn::ContentStore const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::ContentStore const &', 'arg0')])
-    ## ndn-content-store.h (module 'ndnSIM'): bool ns3::ndn::ContentStore::Add(ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> packet) [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): bool ns3::ndn::ContentStore::Add(ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> packet) [member function]
     cls.add_method('Add', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')], 
+                   [param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::cs::Entry> ns3::ndn::ContentStore::Begin() [member function]
     cls.add_method('Begin', 
@@ -4912,10 +4912,10 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-content-store.h (module 'ndnSIM'): boost::tuples::tuple<ns3::Ptr<ns3::Packet>,ns3::Ptr<const ns3::ndn::ContentObjectHeader>,ns3::Ptr<const ns3::Packet>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> ns3::ndn::ContentStore::Lookup(ns3::Ptr<ns3::ndn::InterestHeader const> interest) [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): boost::tuples::tuple<ns3::Ptr<ns3::Packet>,ns3::Ptr<const ns3::ndn::ContentObject>,ns3::Ptr<const ns3::Packet>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> ns3::ndn::ContentStore::Lookup(ns3::Ptr<ns3::ndn::Interest const> interest) [member function]
     cls.add_method('Lookup', 
-                   'boost::tuples::tuple< ns3::Ptr< ns3::Packet >, ns3::Ptr< ns3::ndn::ContentObjectHeader const >, ns3::Ptr< ns3::Packet const >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type >', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'interest')], 
+                   'boost::tuples::tuple< ns3::Ptr< ns3::Packet >, ns3::Ptr< ns3::ndn::ContentObject const >, ns3::Ptr< ns3::Packet const >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type >', 
+                   [param('ns3::Ptr< ns3::ndn::Interest const >', 'interest')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::cs::Entry> ns3::ndn::ContentStore::Next(ns3::Ptr<ns3::ndn::cs::Entry> arg0) [member function]
     cls.add_method('Next', 
@@ -5093,10 +5093,10 @@
                    'void', 
                    [], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::fib::Entry> ns3::ndn::Fib::LongestPrefixMatch(ns3::ndn::InterestHeader const & interest) [member function]
+    ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::fib::Entry> ns3::ndn::Fib::LongestPrefixMatch(ns3::ndn::Interest const & interest) [member function]
     cls.add_method('LongestPrefixMatch', 
                    'ns3::Ptr< ns3::ndn::fib::Entry >', 
-                   [param('ns3::ndn::InterestHeader const &', 'interest')], 
+                   [param('ns3::ndn::Interest const &', 'interest')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-fib.h (module 'ndnSIM'): ns3::Ptr<const ns3::ndn::fib::Entry> ns3::ndn::Fib::Next(ns3::Ptr<const ns3::ndn::fib::Entry> arg0) const [member function]
     cls.add_method('Next', 
@@ -5150,15 +5150,15 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnData(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnData(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('OnData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnInterest(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::OnInterest(ns3::Ptr<ns3::ndn::Face> face, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::RemoveFace(ns3::Ptr<ns3::ndn::Face> face) [member function]
     cls.add_method('RemoveFace', 
@@ -5175,100 +5175,100 @@
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')], 
                    is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('CanSendOutInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DetectRetransmittedInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DetectRetransmittedInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DetectRetransmittedInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidCreatePitEntry', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidExhaustForwardingOptions(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidExhaustForwardingOptions(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidExhaustForwardingOptions', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidForwardSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidForwardSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidForwardSimilarInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveDuplicateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveDuplicateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidReceiveDuplicateInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveSolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveSolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
     cls.add_method('DidReceiveSolicitedData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveUnsolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidReceiveUnsolicitedData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, bool didCreateCacheEntry) [member function]
     cls.add_method('DidReceiveUnsolicitedData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('bool', 'didCreateCacheEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutData(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSendOutData', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSendOutInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSuppressSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidSuppressSimilarInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DidSuppressSimilarInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DoPropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::DoPropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('DoPropagateInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    is_pure_virtual=True, visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::FailedToCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::FailedToCreatePitEntry(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket) [member function]
     cls.add_method('FailedToCreatePitEntry', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::NotifyNewAggregate() [member function]
     cls.add_method('NotifyNewAggregate', 
                    'void', 
                    [], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::PropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::PropagateInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('PropagateInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::SatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::SatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> payload, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('SatisfyPendingInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'payload'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::ShouldSuppressIncomingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::ShouldSuppressIncomingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('ShouldSuppressIncomingInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
-    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::TrySendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
+    ## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::TrySendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('TrySendOutInterest', 
                    'bool', 
-                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
+                   [param('ns3::Ptr< ns3::ndn::Face >', 'inFace'), param('ns3::Ptr< ns3::ndn::Face >', 'outFace'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'origPacket'), param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')], 
                    visibility='protected', is_virtual=True)
     ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::WillSatisfyPendingInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
     cls.add_method('WillSatisfyPendingInterest', 
@@ -5339,103 +5339,103 @@
                    is_static=True)
     return
 
-def register_Ns3NdnInterestHeader_methods(root_module, cls):
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader::InterestHeader() [constructor]
+def register_Ns3NdnInterest_methods(root_module, cls):
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest::Interest() [constructor]
     cls.add_constructor([])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeader::InterestHeader(ns3::ndn::InterestHeader const & interest) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::InterestHeader const &', 'interest')])
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Interest::Interest(ns3::ndn::Interest const & interest) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::Interest const &', 'interest')])
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::Deserialize(ns3::Buffer::Iterator start) [member function]
     cls.add_method('Deserialize', 
                    'uint32_t', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::InterestHeader::GetInstanceTypeId() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::TypeId ns3::ndn::Interest::GetInstanceTypeId() const [member function]
     cls.add_method('GetInstanceTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): static ns3::Ptr<ns3::ndn::InterestHeader> ns3::ndn::InterestHeader::GetInterest(ns3::Ptr<ns3::Packet> packet) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): static ns3::Ptr<ns3::ndn::Interest> ns3::ndn::Interest::GetInterest(ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('GetInterest', 
-                   'ns3::Ptr< ns3::ndn::InterestHeader >', 
+                   'ns3::Ptr< ns3::ndn::Interest >', 
                    [param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_static=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::Time ns3::ndn::InterestHeader::GetInterestLifetime() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::Time ns3::ndn::Interest::GetInterestLifetime() const [member function]
     cls.add_method('GetInterestLifetime', 
                    'ns3::Time', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint8_t ns3::ndn::InterestHeader::GetNack() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint8_t ns3::ndn::Interest::GetNack() const [member function]
     cls.add_method('GetNack', 
                    'uint8_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::InterestHeader::GetName() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::Interest::GetName() const [member function]
     cls.add_method('GetName', 
                    'ns3::ndn::Name const &', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::InterestHeader::GetNamePtr() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Name const> ns3::ndn::Interest::GetNamePtr() const [member function]
     cls.add_method('GetNamePtr', 
                    'ns3::Ptr< ns3::ndn::Name const >', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::GetNonce() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::GetNonce() const [member function]
     cls.add_method('GetNonce', 
                    'uint32_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): int8_t ns3::ndn::InterestHeader::GetScope() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): int8_t ns3::ndn::Interest::GetScope() const [member function]
     cls.add_method('GetScope', 
                    'int8_t', 
                    [], 
                    is_const=True)
-    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::InterestHeader::GetSerializedSize() const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): uint32_t ns3::ndn::Interest::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
                    [], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::InterestHeader::GetTypeId() [member function]
+    ## ndn-interest.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::Interest::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::Print(std::ostream & os) const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::Print(std::ostream & os) const [member function]
     cls.add_method('Print', 
                    'void', 
                    [param('std::ostream &', 'os')], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::Serialize(ns3::Buffer::Iterator start) const [member function]
     cls.add_method('Serialize', 
                    'void', 
                    [param('ns3::Buffer::Iterator', 'start')], 
                    is_const=True, is_virtual=True)
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetInterestLifetime(ns3::Time time) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetInterestLifetime(ns3::Time time) [member function]
     cls.add_method('SetInterestLifetime', 
                    'void', 
                    [param('ns3::Time', 'time')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetNack(uint8_t nackType) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetNack(uint8_t nackType) [member function]
     cls.add_method('SetNack', 
                    'void', 
                    [param('uint8_t', 'nackType')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetName(ns3::Ptr<ns3::ndn::Name> name) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetName(ns3::Ptr<ns3::ndn::Name> name) [member function]
     cls.add_method('SetName', 
                    'void', 
                    [param('ns3::Ptr< ns3::ndn::Name >', 'name')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetNonce(uint32_t nonce) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetNonce(uint32_t nonce) [member function]
     cls.add_method('SetNonce', 
                    'void', 
                    [param('uint32_t', 'nonce')])
-    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::InterestHeader::SetScope(int8_t scope) [member function]
+    ## ndn-interest.h (module 'ndnSIM'): void ns3::ndn::Interest::SetScope(int8_t scope) [member function]
     cls.add_method('SetScope', 
                    'void', 
                    [param('int8_t', 'scope')])
     return
 
-def register_Ns3NdnInterestHeaderException_methods(root_module, cls):
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException::InterestHeaderException() [constructor]
+def register_Ns3NdnInterestException_methods(root_module, cls):
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException::InterestException() [constructor]
     cls.add_constructor([])
-    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestHeaderException::InterestHeaderException(ns3::ndn::InterestHeaderException const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ndn::InterestHeaderException const &', 'arg0')])
+    ## ndn-interest.h (module 'ndnSIM'): ns3::ndn::InterestException::InterestException(ns3::ndn::InterestException const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ndn::InterestException const &', 'arg0')])
     return
 
 def register_Ns3NdnL3Protocol_methods(root_module, cls):
@@ -5798,10 +5798,10 @@
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
                    [], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Create(ns3::Ptr<ns3::ndn::InterestHeader const> header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Create(ns3::Ptr<ns3::ndn::Interest const> header) [member function]
     cls.add_method('Create', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header')], 
+                   [param('ns3::Ptr< ns3::ndn::Interest const >', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::End() [member function]
     cls.add_method('End', 
@@ -5823,15 +5823,15 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::ContentObjectHeader const & header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::ContentObject const & header) [member function]
     cls.add_method('Lookup', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::ndn::ContentObjectHeader const &', 'header')], 
+                   [param('ns3::ndn::ContentObject const &', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
-    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::InterestHeader const & header) [member function]
+    ## ndn-pit.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::pit::Entry> ns3::ndn::Pit::Lookup(ns3::ndn::Interest const & header) [member function]
     cls.add_method('Lookup', 
                    'ns3::Ptr< ns3::ndn::pit::Entry >', 
-                   [param('ns3::ndn::InterestHeader const &', 'header')], 
+                   [param('ns3::ndn::Interest const &', 'header')], 
                    is_pure_virtual=True, is_virtual=True)
     ## ndn-pit.h (module 'ndnSIM'): void ns3::ndn::Pit::MarkErased(ns3::Ptr<ns3::ndn::pit::Entry> entry) [member function]
     cls.add_method('MarkErased', 
@@ -6066,8 +6066,8 @@
 def register_Ns3NdnCsEntry_methods(root_module, cls):
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::ndn::cs::Entry const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::cs::Entry const &', 'arg0')])
-    ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::Ptr<ns3::ndn::ContentStore> cs, ns3::Ptr<ns3::ndn::ContentObjectHeader const> header, ns3::Ptr<const ns3::Packet> packet) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::ndn::ContentStore >', 'cs'), param('ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')])
+    ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::cs::Entry::Entry(ns3::Ptr<ns3::ndn::ContentStore> cs, ns3::Ptr<ns3::ndn::ContentObject const> header, ns3::Ptr<const ns3::Packet> packet) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::ndn::ContentStore >', 'cs'), param('ns3::Ptr< ns3::ndn::ContentObject const >', 'header'), param('ns3::Ptr< ns3::Packet const >', 'packet')])
     ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentStore> ns3::ndn::cs::Entry::GetContentStore() [member function]
     cls.add_method('GetContentStore', 
                    'ns3::Ptr< ns3::ndn::ContentStore >', 
@@ -6077,9 +6077,9 @@
                    'ns3::Ptr< ns3::Packet >', 
                    [], 
                    is_const=True)
-    ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentObjectHeader const> ns3::ndn::cs::Entry::GetHeader() const [member function]
+    ## ndn-content-store.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::ContentObject const> ns3::ndn::cs::Entry::GetHeader() const [member function]
     cls.add_method('GetHeader', 
-                   'ns3::Ptr< ns3::ndn::ContentObjectHeader const >', 
+                   'ns3::Ptr< ns3::ndn::ContentObject const >', 
                    [], 
                    is_const=True)
     ## ndn-content-store.h (module 'ndnSIM'): ns3::ndn::Name const & ns3::ndn::cs::Entry::GetName() const [member function]
@@ -6237,8 +6237,8 @@
     cls.add_output_stream_operator()
     ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::pit::Entry const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ndn::pit::Entry const &', 'arg0')])
-    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::Pit & container, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [constructor]
-    cls.add_constructor([param('ns3::ndn::Pit &', 'container'), param('ns3::Ptr< ns3::ndn::InterestHeader const >', 'header'), param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')])
+    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::Entry::Entry(ns3::ndn::Pit & container, ns3::Ptr<ns3::ndn::Interest const> header, ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [constructor]
+    cls.add_constructor([param('ns3::ndn::Pit &', 'container'), param('ns3::Ptr< ns3::ndn::Interest const >', 'header'), param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')])
     ## ndn-pit-entry.h (module 'ndnSIM'): void ns3::ndn::pit::Entry::AddFwTag(boost::shared_ptr<ns3::ndn::fw::Tag> tag) [member function]
     cls.add_method('AddFwTag', 
                    'void', 
@@ -6292,9 +6292,9 @@
                    'std::set< ns3::ndn::pit::IncomingFace > const &', 
                    [], 
                    is_const=True)
-    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::InterestHeader const> ns3::ndn::pit::Entry::GetInterest() const [member function]
+    ## ndn-pit-entry.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Interest const> ns3::ndn::pit::Entry::GetInterest() const [member function]
     cls.add_method('GetInterest', 
-                   'ns3::Ptr< ns3::ndn::InterestHeader const >', 
+                   'ns3::Ptr< ns3::ndn::Interest const >', 
                    [], 
                    is_const=True)
     ## ndn-pit-entry.h (module 'ndnSIM'): uint32_t ns3::ndn::pit::Entry::GetMaxRetxCount() const [member function]
diff --git a/disabled/ccnb-parser/visitors/interest-visitor.cc b/disabled/ccnb-parser/visitors/interest-visitor.cc
index e7fe598..4e7b8ca 100644
--- a/disabled/ccnb-parser/visitors/interest-visitor.cc
+++ b/disabled/ccnb-parser/visitors/interest-visitor.cc
@@ -46,7 +46,7 @@
 
 // We don't care about any other fields
 void
-InterestVisitor::visit (Dtag &n, boost::any param/*should be InterestHeader* */)
+InterestVisitor::visit (Dtag &n, boost::any param/*should be Interest* */)
 {
   // uint32_t n.m_dtag;
   // std::list<Ptr<Block> > n.m_nestedBlocks;
@@ -56,7 +56,7 @@
   static TimestampVisitor          timestampVisitor;
   static Uint32tBlobVisitor        nonceVisitor;
   
-  InterestHeader &interest = *(boost::any_cast<InterestHeader*> (param));
+  Interest &interest = *(boost::any_cast<Interest*> (param));
 
   switch (n.m_dtag)
     {
diff --git a/disabled/ccnb-parser/visitors/interest-visitor.h b/disabled/ccnb-parser/visitors/interest-visitor.h
index f78d07f..38a969d 100644
--- a/disabled/ccnb-parser/visitors/interest-visitor.h
+++ b/disabled/ccnb-parser/visitors/interest-visitor.h
@@ -29,11 +29,11 @@
 
 /**
  * \ingroup ccnx-ccnb
- * \brief Visitor that fills fields in CcnxInterestHeader
+ * \brief Visitor that fills fields in CcnxInterest
  *
  * Usage example:
  * \code
- *   Ptr<CcnxInterestHeader> header = Create<CcnxInterestHeader> ();
+ *   Ptr<CcnxInterest> header = Create<CcnxInterest> ();
  *   Ptr<CcnbParser::Block> root = CcnbParser::Block::ParseBlock (i);
  *   InterestVisitor visitor;
  *   root->accept (visitor, *header); 
@@ -42,7 +42,7 @@
 class InterestVisitor : public VoidDepthFirstVisitor
 {
 public:
-  virtual void visit (Dtag &n, boost::any param/*should be CcnxInterestHeader* */);
+  virtual void visit (Dtag &n, boost::any param/*should be CcnxInterest* */);
 };
 
 } // namespace CcnbParser
diff --git a/disabled/ndn-content-object-header-ccnb.cc b/disabled/ndn-content-object-header-ccnb.cc
index 112f141..1f1a9f3 100644
--- a/disabled/ndn-content-object-header-ccnb.cc
+++ b/disabled/ndn-content-object-header-ccnb.cc
@@ -39,48 +39,48 @@
 
 #include <boost/foreach.hpp>
 
-NS_LOG_COMPONENT_DEFINE ("ndn.ContentObjectHeader");
+NS_LOG_COMPONENT_DEFINE ("ndn.ContentObject");
 
 namespace ns3 {
 namespace ndn {
 
 using namespace CcnbParser;
 
-const std::string ContentObjectHeader::Signature::DefaultDigestAlgorithm = "2.16.840.1.101.3.4.2.1";
+const std::string ContentObject::Signature::DefaultDigestAlgorithm = "2.16.840.1.101.3.4.2.1";
 
-NS_OBJECT_ENSURE_REGISTERED (ContentObjectHeader);
+NS_OBJECT_ENSURE_REGISTERED (ContentObject);
 NS_OBJECT_ENSURE_REGISTERED (ContentObjectTail);
 
 TypeId
-ContentObjectHeader::GetTypeId (void)
+ContentObject::GetTypeId (void)
 {
-  static TypeId tid = TypeId ("ns3::ndn::ContentObjectHeader")
+  static TypeId tid = TypeId ("ns3::ndn::ContentObject")
     .SetGroupName ("Ndn")
     .SetParent<Header> ()
-    .AddConstructor<ContentObjectHeader> ()
+    .AddConstructor<ContentObject> ()
     ;
   return tid;
 }
 
-ContentObjectHeader::ContentObjectHeader ()
+ContentObject::ContentObject ()
 {
 }
 
 void
-ContentObjectHeader::SetName (const Ptr<Name> &name)
+ContentObject::SetName (const Ptr<Name> &name)
 {
   m_name = name;
 }
 
 const Name&
-ContentObjectHeader::GetName () const
+ContentObject::GetName () const
 {
-  if (m_name==0) throw ContentObjectHeaderException();
+  if (m_name==0) throw ContentObjectException();
   return *m_name;
 }
 
 Ptr<const Name>
-ContentObjectHeader::GetNamePtr () const
+ContentObject::GetNamePtr () const
 {
   return m_name;
 }
@@ -88,7 +88,7 @@
 #define CCNB EncodingHelper // just to simplify writing
 
 void
-ContentObjectHeader::Serialize (Buffer::Iterator start) const
+ContentObject::Serialize (Buffer::Iterator start) const
 {
   size_t written = 0;
   written += CCNB::AppendBlockHeader (start, CCN_DTAG_ContentObject, CCN_DTAG); // <ContentObject>
@@ -163,7 +163,7 @@
 }
 
 uint32_t
-ContentObjectHeader::GetSerializedSize () const
+ContentObject::GetSerializedSize () const
 {
   size_t written = 0;
   written += CCNB::EstimateBlockHeader (CCN_DTAG_ContentObject); // <ContentObject>
@@ -240,7 +240,7 @@
 class ContentObjectVisitor : public VoidDepthFirstVisitor
 {
 public:
-  virtual void visit (Dtag &n, boost::any param/*should be ContentObjectHeader* */)
+  virtual void visit (Dtag &n, boost::any param/*should be ContentObject* */)
   {
     // uint32_t n.m_dtag;
     // std::list<Ptr<Block> > n.m_nestedBlocks;
@@ -251,7 +251,7 @@
     static Uint32tBlobVisitor uint32tBlobVisitor;
     static ContentTypeVisitor contentTypeVisitor;
   
-    ContentObjectHeader &contentObject = *(boost::any_cast<ContentObjectHeader*> (param));
+    ContentObject &contentObject = *(boost::any_cast<ContentObject*> (param));
   
     switch (n.m_dtag)
       {
@@ -337,7 +337,7 @@
           throw CcnbDecodingException ();
 
         contentObject.GetSignedInfo ().SetContentType
-          (static_cast<ContentObjectHeader::ContentType>
+          (static_cast<ContentObject::ContentType>
            (boost::any_cast<uint32_t> ((*n.m_nestedTags.begin())->accept
                                        (contentTypeVisitor))));
         break;
@@ -394,7 +394,7 @@
 };
 
 uint32_t
-ContentObjectHeader::Deserialize (Buffer::Iterator start)
+ContentObject::Deserialize (Buffer::Iterator start)
 {
   static ContentObjectVisitor contentObjectVisitor;
 
@@ -406,13 +406,13 @@
 }
   
 TypeId
-ContentObjectHeader::GetInstanceTypeId (void) const
+ContentObject::GetInstanceTypeId (void) const
 {
   return GetTypeId ();
 }
   
 void
-ContentObjectHeader::Print (std::ostream &os) const
+ContentObject::Print (std::ostream &os) const
 {
   os << "D: " << GetName ();
   // os << "<ContentObject><Name>" << GetName () << "</Name><Content>";
@@ -481,7 +481,7 @@
 ///////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////
 
-ContentObjectHeader::SignedInfo::SignedInfo ()
+ContentObject::SignedInfo::SignedInfo ()
   : m_publisherPublicKeyDigest (0)
   // ,  m_timestamp
   , m_type (DATA)
@@ -492,61 +492,61 @@
 }
 
 void
-ContentObjectHeader::SignedInfo::SetPublisherPublicKeyDigest (uint32_t digest)
+ContentObject::SignedInfo::SetPublisherPublicKeyDigest (uint32_t digest)
 {
   m_publisherPublicKeyDigest = digest;
 }
 
 uint32_t
-ContentObjectHeader::SignedInfo::GetPublisherPublicKeyDigest () const
+ContentObject::SignedInfo::GetPublisherPublicKeyDigest () const
 {
   return m_publisherPublicKeyDigest;
 }
 
 void
-ContentObjectHeader::SignedInfo::SetTimestamp (const Time &timestamp)
+ContentObject::SignedInfo::SetTimestamp (const Time &timestamp)
 {
   m_timestamp = timestamp;
 }
 
 Time
-ContentObjectHeader::SignedInfo::GetTimestamp () const
+ContentObject::SignedInfo::GetTimestamp () const
 {
   return m_timestamp;
 }
 
 void
-ContentObjectHeader::SignedInfo::SetContentType (ContentObjectHeader::ContentType type)
+ContentObject::SignedInfo::SetContentType (ContentObject::ContentType type)
 {
   m_type = type;
 }
 
-ContentObjectHeader::ContentType
-ContentObjectHeader::SignedInfo::GetContentType () const
+ContentObject::ContentType
+ContentObject::SignedInfo::GetContentType () const
 {
   return m_type;
 }
 
 void
-ContentObjectHeader::SignedInfo::SetFreshness (const Time &freshness)
+ContentObject::SignedInfo::SetFreshness (const Time &freshness)
 {
   m_freshness = freshness;
 }
 
 Time
-ContentObjectHeader::SignedInfo::GetFreshness () const
+ContentObject::SignedInfo::GetFreshness () const
 {
   return m_freshness;
 }
 
 void
-ContentObjectHeader::SignedInfo::SetKeyLocator (Ptr<const Name> keyLocator)
+ContentObject::SignedInfo::SetKeyLocator (Ptr<const Name> keyLocator)
 {
   m_keyLocator = keyLocator;
 }
 
 Ptr<const Name>
-ContentObjectHeader::SignedInfo::GetKeyLocator () const
+ContentObject::SignedInfo::GetKeyLocator () const
 {
   return m_keyLocator;
 }
diff --git a/disabled/ndn-content-object-header-ccnb.h b/disabled/ndn-content-object-header-ccnb.h
index 06edcfd..8d58a65 100644
--- a/disabled/ndn-content-object-header-ccnb.h
+++ b/disabled/ndn-content-object-header-ccnb.h
@@ -43,7 +43,7 @@
  * Only few important fields are actually implemented in the simulation
  *
  *
- * ContentObjectHeader serializes/deserializes header up-to and including <Content> tags
+ * ContentObject serializes/deserializes header up-to and including <Content> tags
  * Necessary closing tags should be added using ContentObjectTail
  *
  * This hacks are necessary to optimize memory use (i.e., virtual payload)
@@ -51,7 +51,7 @@
  * "<ContentObject><Signature>..</Signature><Name>...</Name><SignedInfo>...</SignedInfo><Content>"
  * 
  */
-class ContentObjectHeader : public SimpleRefCount<ContentObjectHeader,Header>
+class ContentObject : public SimpleRefCount<ContentObject,Header>
 {
 public:
   ////////////////////////////////////////////////////////////////////////////  
@@ -226,7 +226,7 @@
    *
    * Creates a null header
    **/
-  ContentObjectHeader ();
+  ContentObject ();
 
   /**
    * \brief Set content object name
@@ -306,57 +306,57 @@
 };
 
 
-ContentObjectHeader::Signature::Signature ()
+ContentObject::Signature::Signature ()
   : m_digestAlgorithm ("99.0")
   , m_signatureBits (0)
 {
 }
 
 const std::string &
-ContentObjectHeader::Signature::GetDigestAlgorithm () const
+ContentObject::Signature::GetDigestAlgorithm () const
 {
   return m_digestAlgorithm;
 }
 
 void
-ContentObjectHeader::Signature::SetDigestAlgorithm (const std::string &digestAlgorithm)
+ContentObject::Signature::SetDigestAlgorithm (const std::string &digestAlgorithm)
 {
   m_digestAlgorithm = digestAlgorithm;
 }
 
 uint32_t
-ContentObjectHeader::Signature::GetSignatureBits () const
+ContentObject::Signature::GetSignatureBits () const
 {
   return m_signatureBits;
 }
 
 inline void
-ContentObjectHeader::Signature::SetSignatureBits (uint32_t signature)
+ContentObject::Signature::SetSignatureBits (uint32_t signature)
 {
   m_signatureBits = signature;
 }
 
 
-ContentObjectHeader::Signature &
-ContentObjectHeader::GetSignature ()
+ContentObject::Signature &
+ContentObject::GetSignature ()
 {
   return m_signature;
 }
 
-const ContentObjectHeader::Signature &
-ContentObjectHeader::GetSignature () const
+const ContentObject::Signature &
+ContentObject::GetSignature () const
 {
   return m_signature;
 }
 
-ContentObjectHeader::SignedInfo &
-ContentObjectHeader::GetSignedInfo ()
+ContentObject::SignedInfo &
+ContentObject::GetSignedInfo ()
 {
   return m_signedInfo;
 }
 
-const ContentObjectHeader::SignedInfo &
-ContentObjectHeader::GetSignedInfo () const
+const ContentObject::SignedInfo &
+ContentObject::GetSignedInfo () const
 {
   return m_signedInfo;
 }
@@ -365,7 +365,7 @@
  * @ingroup ndn-exceptions
  * @brief Class for ContentObject parsing exception 
  */
-class ContentObjectHeaderException {};
+class ContentObjectException {};
 
 } // namespace ndn
 } // namespace ns3
diff --git a/disabled/ndn-decoding-helper.cc b/disabled/ndn-decoding-helper.cc
index 89936c1..3984540 100644
--- a/disabled/ndn-decoding-helper.cc
+++ b/disabled/ndn-decoding-helper.cc
@@ -35,7 +35,7 @@
 namespace ndn {
 
 size_t
-DecodingHelper::Deserialize (Buffer::Iterator start, InterestHeader &interest)
+DecodingHelper::Deserialize (Buffer::Iterator start, Interest &interest)
 {
   static CcnbParser::InterestVisitor interestVisitor;
 
@@ -47,7 +47,7 @@
 }
 
 // size_t
-// NdnDecodingHelper::Deserialize (Buffer::Iterator start, NdnContentObjectHeader &contentObject)
+// NdnDecodingHelper::Deserialize (Buffer::Iterator start, NdnContentObject &contentObject)
 // {
 //   static CcnbParser::ContentObjectVisitor contentObjectVisitor;
 
diff --git a/disabled/ndn-decoding-helper.h b/disabled/ndn-decoding-helper.h
index 9e1f5ef..10b4dda 100644
--- a/disabled/ndn-decoding-helper.h
+++ b/disabled/ndn-decoding-helper.h
@@ -27,8 +27,8 @@
 namespace ns3 {
 namespace ndn {
 
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 
 /**
  * \brief Helper class to decode ccnb formatted Ndn message
@@ -37,22 +37,22 @@
 {
 public:
   /**
-   * \brief Deserialize Buffer::Iterator to NdnInterestHeader
+   * \brief Deserialize Buffer::Iterator to NdnInterest
    * @param start Buffer containing serialized Ndn message
-   * @param interest Pointer to the NdnInterestHeader to hold deserialized value
+   * @param interest Pointer to the NdnInterest to hold deserialized value
    * @return Number of bytes used for deserialization
    */
   static size_t
-  Deserialize (Buffer::Iterator start, InterestHeader &interest);
+  Deserialize (Buffer::Iterator start, Interest &interest);
 
   /**
-   * \brief Deserialize Buffer::Iterator to NdnContentObjectHeader
+   * \brief Deserialize Buffer::Iterator to NdnContentObject
    * @param start Buffer containing serialized Ndn message
-   * @param contentObject Pointer to the NdnContentObjectHeader to hold deserialized value
+   * @param contentObject Pointer to the NdnContentObject to hold deserialized value
    * @return Number of bytes used for deserialization
    */
   // static size_t
-  // Deserialize (Buffer::Iterator start, ContentObjectHeader &contentObject);
+  // Deserialize (Buffer::Iterator start, ContentObject &contentObject);
 };
 
 } // namespace ndn
diff --git a/disabled/ndn-encoding-helper.cc b/disabled/ndn-encoding-helper.cc
index 8ef3a7a..644ef7b 100644
--- a/disabled/ndn-encoding-helper.cc
+++ b/disabled/ndn-encoding-helper.cc
@@ -31,7 +31,7 @@
 namespace ndn {
 
 size_t
-EncodingHelper::Serialize (Buffer::Iterator start, const InterestHeader &interest)
+EncodingHelper::Serialize (Buffer::Iterator start, const Interest &interest)
 {
   size_t written = 0;
   written += AppendBlockHeader (start, CcnbParser::CCN_DTAG_Interest, CcnbParser::CCN_DTAG); // <Interest>
@@ -100,7 +100,7 @@
 }
 
 size_t
-EncodingHelper::GetSerializedSize (const InterestHeader &interest)
+EncodingHelper::GetSerializedSize (const Interest &interest)
 {
   size_t written = 0;
   written += EstimateBlockHeader (CcnbParser::CCN_DTAG_Interest); // <Interest>
diff --git a/disabled/ndn-encoding-helper.h b/disabled/ndn-encoding-helper.h
index ab222ac..ae66684 100644
--- a/disabled/ndn-encoding-helper.h
+++ b/disabled/ndn-encoding-helper.h
@@ -33,8 +33,8 @@
 
 class Name;
 
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
   
 /**
  * \brief Helper to encode/decode ccnb formatted Ndn message
@@ -43,26 +43,26 @@
 {
 public:
   /**
-   * \brief Serialize NdnInterestHeader to Buffer::Iterator
-   * @param start Buffer to store serialized NdnInterestHeader
-   * @param interest Pointer to NdnInterestHeader to be serialized 
-   * @return length of serialized NdnInterestHeader
+   * \brief Serialize NdnInterest to Buffer::Iterator
+   * @param start Buffer to store serialized NdnInterest
+   * @param interest Pointer to NdnInterest to be serialized 
+   * @return length of serialized NdnInterest
    */
   static size_t
-  Serialize (Buffer::Iterator start, const InterestHeader &interest);
+  Serialize (Buffer::Iterator start, const Interest &interest);
 
   /**
-   * \brief Compute the size of serialized NdnInterestHeader
-   * @param interest Pointer to NdnInterestHeader
+   * \brief Compute the size of serialized NdnInterest
+   * @param interest Pointer to NdnInterest
    * @return length 
    */
   static size_t
-  GetSerializedSize (const InterestHeader &interest);
+  GetSerializedSize (const Interest &interest);
   
 public:
   /**
    * @brief Append CCNB block header
-   * @param start Buffer to store serialized NdnInterestHeader
+   * @param start Buffer to store serialized NdnInterest
    * @param value dictionary id of the block header
    * @param block_type Type of CCNB block
    *
@@ -81,7 +81,7 @@
 
   /**
    * @brief Add number in CCNB encoding
-   * @param start Buffer to store serialized NdnInterestHeader
+   * @param start Buffer to store serialized NdnInterest
    * @param number Number to be written
    *
    * @returns written length
@@ -99,7 +99,7 @@
 
   /**
    * @brief Append CCNB closer tag (estimated size is 1)
-   * @param start Buffer to store serialized InterestHeader
+   * @param start Buffer to store serialized Interest
    *
    * @returns written length
    */
@@ -108,7 +108,7 @@
 
   /**
    * @brief Append Name in CCNB encoding
-   * @param start Buffer to store serialized InterestHeader
+   * @param start Buffer to store serialized Interest
    * @param name constant reference to Name object
    *
    * @returns written length
diff --git a/disabled/ndn-interest-header-ccnb.cc b/disabled/ndn-interest-header-ccnb.cc
index 438b906..1c4e3d6 100644
--- a/disabled/ndn-interest-header-ccnb.cc
+++ b/disabled/ndn-interest-header-ccnb.cc
@@ -31,26 +31,26 @@
 #include "../helper/ndn-encoding-helper.h"
 #include "../helper/ndn-decoding-helper.h"
 
-NS_LOG_COMPONENT_DEFINE ("ndn.InterestHeader");
+NS_LOG_COMPONENT_DEFINE ("ndn.Interest");
 
 namespace ns3 {
 namespace ndn {
 
-NS_OBJECT_ENSURE_REGISTERED (InterestHeader);
+NS_OBJECT_ENSURE_REGISTERED (Interest);
 
 TypeId
-InterestHeader::GetTypeId (void)
+Interest::GetTypeId (void)
 {
-  static TypeId tid = TypeId ("ns3::ndn::InterestHeader")
+  static TypeId tid = TypeId ("ns3::ndn::Interest")
     .SetGroupName ("Ndn")
     .SetParent<Header> ()
-    .AddConstructor<InterestHeader> ()
+    .AddConstructor<Interest> ()
     ;
   return tid;
 }
   
 
-InterestHeader::InterestHeader ()
+Interest::Interest ()
   : m_name ()
   , m_minSuffixComponents (-1)
   , m_maxSuffixComponents (-1)
@@ -64,7 +64,7 @@
 {
 }
 
-InterestHeader::InterestHeader (const InterestHeader &interest)
+Interest::Interest (const Interest &interest)
   : m_name                (Create<Name> (interest.GetName ()))
   , m_minSuffixComponents (interest.m_minSuffixComponents)
   , m_maxSuffixComponents (interest.m_maxSuffixComponents)
@@ -78,158 +78,158 @@
 {
 }
 
-Ptr<InterestHeader>
-InterestHeader::GetInterest (Ptr<Packet> packet)
+Ptr<Interest>
+Interest::GetInterest (Ptr<Packet> packet)
 {
-  Ptr<InterestHeader> interest = Create<InterestHeader> ();
+  Ptr<Interest> interest = Create<Interest> ();
   packet->RemoveHeader (*interest);
 
   return interest;
 }
 
 void
-InterestHeader::SetName (Ptr<Name> name)
+Interest::SetName (Ptr<Name> name)
 {
   m_name = name;
 }
 
 const Name&
-InterestHeader::GetName () const
+Interest::GetName () const
 {
-  if (m_name==0) throw InterestHeaderException();
+  if (m_name==0) throw InterestException();
   return *m_name;
 }
 
 Ptr<const Name>
-InterestHeader::GetNamePtr () const
+Interest::GetNamePtr () const
 {
   return m_name;
 }
 
 void
-InterestHeader::SetMinSuffixComponents (int32_t value)
+Interest::SetMinSuffixComponents (int32_t value)
 {
   m_minSuffixComponents = value;
 }
 
 int32_t
-InterestHeader::GetMinSuffixComponents () const
+Interest::GetMinSuffixComponents () const
 {
   return m_minSuffixComponents;
 }
 
 void
-InterestHeader::SetMaxSuffixComponents (int32_t value)
+Interest::SetMaxSuffixComponents (int32_t value)
 {
   m_maxSuffixComponents = value;
 }
 
 int32_t
-InterestHeader::GetMaxSuffixComponents () const
+Interest::GetMaxSuffixComponents () const
 {
   return m_maxSuffixComponents;
 }
 
 void
-InterestHeader::SetExclude (Ptr<Name> exclude)
+Interest::SetExclude (Ptr<Name> exclude)
 {
   m_exclude = exclude;
 }
 
 bool
-InterestHeader::IsEnabledExclude () const
+Interest::IsEnabledExclude () const
 {
   return m_exclude!=0;
 }
 
 const Name&
-InterestHeader::GetExclude () const
+Interest::GetExclude () const
 {
-  if (m_exclude==0) throw InterestHeaderException();
+  if (m_exclude==0) throw InterestException();
   return *m_exclude;
 }
 
 void
-InterestHeader::SetChildSelector (bool value)
+Interest::SetChildSelector (bool value)
 {
   m_childSelector = value;
 }
 
 bool
-InterestHeader::IsEnabledChildSelector () const
+Interest::IsEnabledChildSelector () const
 {
   return m_childSelector;
 }
 
 void
-InterestHeader::SetAnswerOriginKind (bool value)
+Interest::SetAnswerOriginKind (bool value)
 {
   m_answerOriginKind = value;
 }
 
 bool
-InterestHeader::IsEnabledAnswerOriginKind () const
+Interest::IsEnabledAnswerOriginKind () const
 {
   return m_answerOriginKind;
 }
 
 void
-InterestHeader::SetScope (int8_t scope)
+Interest::SetScope (int8_t scope)
 {
   m_scope = scope;
 }
 
 int8_t
-InterestHeader::GetScope () const
+Interest::GetScope () const
 {
   return m_scope;
 }
 
 void
-InterestHeader::SetInterestLifetime (Time lifetime)
+Interest::SetInterestLifetime (Time lifetime)
 {
   m_interestLifetime = lifetime;
 }
 
 Time
-InterestHeader::GetInterestLifetime () const
+Interest::GetInterestLifetime () const
 {
   return m_interestLifetime;
 }
 
 void
-InterestHeader::SetNonce (uint32_t nonce)
+Interest::SetNonce (uint32_t nonce)
 {
   m_nonce = nonce;
 }
 
 uint32_t
-InterestHeader::GetNonce () const
+Interest::GetNonce () const
 {
   return m_nonce;
 }
 
 void
-InterestHeader::SetNack (uint32_t nackType)
+Interest::SetNack (uint32_t nackType)
 {
   m_nackType = nackType;
 }
 
 uint32_t
-InterestHeader::GetNack () const
+Interest::GetNack () const
 {
   return m_nackType;
 }
 
 uint32_t
-InterestHeader::GetSerializedSize (void) const
+Interest::GetSerializedSize (void) const
 {
   // unfortunately, we don't know exact header size in advance
   return EncodingHelper::GetSerializedSize (*this);
 }
     
 void
-InterestHeader::Serialize (Buffer::Iterator start) const
+Interest::Serialize (Buffer::Iterator start) const
 {
   size_t size = EncodingHelper::Serialize (start, *this);
   NS_UNUSED (size);
@@ -237,19 +237,19 @@
 }
 
 uint32_t
-InterestHeader::Deserialize (Buffer::Iterator start)
+Interest::Deserialize (Buffer::Iterator start)
 {
   return DecodingHelper::Deserialize (start, *this); // \todo Debugging is necessary
 }
 
 TypeId
-InterestHeader::GetInstanceTypeId (void) const
+Interest::GetInstanceTypeId (void) const
 {
   return GetTypeId ();
 }
   
 void
-InterestHeader::Print (std::ostream &os) const
+Interest::Print (std::ostream &os) const
 {
   os << "I: " << GetName ();
   
diff --git a/disabled/ndn-interest-header-ccnb.h b/disabled/ndn-interest-header-ccnb.h
index 819875a..1daa7d1 100644
--- a/disabled/ndn-interest-header-ccnb.h
+++ b/disabled/ndn-interest-header-ccnb.h
@@ -118,7 +118,7 @@
  **/
 
 /**
-  * @brief NDN InterestHeader and routines to serialize/deserialize
+  * @brief NDN Interest and routines to serialize/deserialize
   *
   * Simplifications:
   * - Name:  binary name components are not supported
@@ -129,7 +129,7 @@
   * - InterestLifetime: ?
   * - Nonce: 32 bit random integer.  If value is 0, will not be serialized
   **/
-class InterestHeader : public SimpleRefCount<InterestHeader, Header>
+class Interest : public SimpleRefCount<Interest, Header>
 {
 public:
   /**
@@ -137,12 +137,12 @@
    *
    * Creates a null header
    **/
-  InterestHeader ();
+  Interest ();
 
   /**
    * @brief Copy constructor
    */
-  InterestHeader (const InterestHeader &interest);
+  Interest (const Interest &interest);
 
   /**
    * \brief Set interest name
@@ -391,7 +391,7 @@
   /**
    * @brief Cheat for python bindings
    */
-  static Ptr<InterestHeader>
+  static Ptr<Interest>
   GetInterest (Ptr<Packet> packet);
   
 private:
@@ -411,7 +411,7 @@
  * @ingroup ndn-exceptions
  * @brief Class for Interest parsing exception 
  */
-class InterestHeaderException {};
+class InterestException {};
 
 } // namespace ndn
 } // namespace ns3
diff --git a/examples/custom-apps/custom-app.cc b/examples/custom-apps/custom-app.cc
index 86108ac..9abd7bb 100644
--- a/examples/custom-apps/custom-app.cc
+++ b/examples/custom-apps/custom-app.cc
@@ -93,14 +93,14 @@
   
   Ptr<ndn::Name> prefix = Create<ndn::Name> ("/prefix/sub"); // another way to create name
 
-  // Create and configure ndn::InterestHeader
-  ndn::InterestHeader interestHeader;
+  // Create and configure ndn::Interest
+  ndn::Interest interestHeader;
   UniformVariable rand (0,std::numeric_limits<uint32_t>::max ());
   interestHeader.SetNonce            (rand.GetValue ());
   interestHeader.SetName             (prefix);
   interestHeader.SetInterestLifetime (Seconds (1.0));
 
-  // Create packet and add ndn::InterestHeader
+  // Create packet and add ndn::Interest
   Ptr<Packet> packet = Create<Packet> ();
   packet->AddHeader (interestHeader);
 
@@ -115,16 +115,16 @@
 
 // Callback that will be called when Interest arrives
 void
-CustomApp::OnInterest (const Ptr<const ndn::InterestHeader> &interest, Ptr<Packet> origPacket)
+CustomApp::OnInterest (const Ptr<const ndn::Interest> &interest, Ptr<Packet> origPacket)
 {
   NS_LOG_DEBUG ("Received Interest packet for " << interest->GetName ());
 
-  // Create and configure ndn::ContentObjectHeader and ndn::ContentObjectTail
+  // Create and configure ndn::ContentObject and ndn::ContentObjectTail
   // (header is added in front of the packet, tail is added at the end of the packet)
 
   // Note that Interests send out by the app will not be sent back to the app !
   
-  ndn::ContentObjectHeader data;
+  ndn::ContentObject data;
   data.SetName (Create<ndn::Name> (interest->GetName ())); // data will have the same name as Interests
 
   ndn::ContentObjectTail trailer; // doesn't require any configuration
@@ -145,7 +145,7 @@
 
 // Callback that will be called when Data arrives
 void
-CustomApp::OnContentObject (const Ptr<const ndn::ContentObjectHeader> &contentObject,
+CustomApp::OnContentObject (const Ptr<const ndn::ContentObject> &contentObject,
                             Ptr<Packet> payload)
 {
   NS_LOG_DEBUG ("Receiving ContentObject packet for " << contentObject->GetName ());
diff --git a/examples/custom-apps/custom-app.h b/examples/custom-apps/custom-app.h
index 1ae1f4f..0d33bd8 100644
--- a/examples/custom-apps/custom-app.h
+++ b/examples/custom-apps/custom-app.h
@@ -54,11 +54,11 @@
 
   // (overridden from ndn::App) Callback that will be called when Interest arrives
   virtual void
-  OnInterest (const Ptr<const ndn::InterestHeader> &interest, Ptr<Packet> origPacket);
+  OnInterest (const Ptr<const ndn::Interest> &interest, Ptr<Packet> origPacket);
 
   // (overridden from ndn::App) Callback that will be called when Data arrives
   virtual void
-  OnContentObject (const Ptr<const ndn::ContentObjectHeader> &contentObject,
+  OnContentObject (const Ptr<const ndn::ContentObject> &contentObject,
                    Ptr<Packet> payload);
 
 private:
diff --git a/examples/custom-apps/dumb-requester.cc b/examples/custom-apps/dumb-requester.cc
index 3dbcadf..643e24c 100644
--- a/examples/custom-apps/dumb-requester.cc
+++ b/examples/custom-apps/dumb-requester.cc
@@ -90,14 +90,14 @@
   
   Ptr<ndn::Name> prefix = Create<ndn::Name> (m_name); // another way to create name
 
-  // Create and configure ndn::InterestHeader
-  ndn::InterestHeader interestHeader;
+  // Create and configure ndn::Interest
+  ndn::Interest interestHeader;
   UniformVariable rand (0,std::numeric_limits<uint32_t>::max ());
   interestHeader.SetNonce            (rand.GetValue ());
   interestHeader.SetName             (prefix);
   interestHeader.SetInterestLifetime (Seconds (1.0));
 
-  // Create packet and add ndn::InterestHeader
+  // Create packet and add ndn::Interest
   Ptr<Packet> packet = Create<Packet> ();
   packet->AddHeader (interestHeader);
 
@@ -112,7 +112,7 @@
 }
 
 void
-DumbRequester::OnContentObject (const Ptr<const ndn::ContentObjectHeader> &contentObject,
+DumbRequester::OnContentObject (const Ptr<const ndn::ContentObject> &contentObject,
                                 Ptr<Packet> payload)
 {
   NS_LOG_DEBUG ("Receiving ContentObject packet for " << contentObject->GetName ());
diff --git a/examples/custom-apps/dumb-requester.h b/examples/custom-apps/dumb-requester.h
index 2b28c77..06ed812 100644
--- a/examples/custom-apps/dumb-requester.h
+++ b/examples/custom-apps/dumb-requester.h
@@ -52,7 +52,7 @@
 
   // (overridden from ndn::App) Callback that will be called when Data arrives
   virtual void
-  OnContentObject (const Ptr<const ndn::ContentObjectHeader> &contentObject,
+  OnContentObject (const Ptr<const ndn::ContentObject> &contentObject,
                    Ptr<Packet> payload);
   
 private:
diff --git a/examples/custom-apps/hijacker.cc b/examples/custom-apps/hijacker.cc
index 252cf92..4213f97 100644
--- a/examples/custom-apps/hijacker.cc
+++ b/examples/custom-apps/hijacker.cc
@@ -45,7 +45,7 @@
 }
 
 void
-Hijacker::OnInterest (const Ptr<const ndn::InterestHeader> &interest, Ptr<Packet> packet)
+Hijacker::OnInterest (const Ptr<const ndn::Interest> &interest, Ptr<Packet> packet)
 {
   ndn::App::OnInterest (interest, packet); // forward call to perform app-level tracing
   // do nothing else (hijack interest)
diff --git a/examples/custom-apps/hijacker.h b/examples/custom-apps/hijacker.h
index 84d9070..07185de 100644
--- a/examples/custom-apps/hijacker.h
+++ b/examples/custom-apps/hijacker.h
@@ -39,7 +39,7 @@
 
   // Receive all Interests but do nothing in response
   void
-  OnInterest (const Ptr<const ndn::InterestHeader> &interest, Ptr<Packet> packet);
+  OnInterest (const Ptr<const ndn::Interest> &interest, Ptr<Packet> packet);
 
 protected:
   // inherited from Application base class.
diff --git a/examples/custom-strategies/custom-strategy.cc b/examples/custom-strategies/custom-strategy.cc
index 5812ca3..05e7e83 100644
--- a/examples/custom-strategies/custom-strategy.cc
+++ b/examples/custom-strategies/custom-strategy.cc
@@ -44,7 +44,7 @@
 
 bool
 CustomStrategy::DoPropagateInterest (Ptr<Face> inFace,
-                                     Ptr<const InterestHeader> header,
+                                     Ptr<const Interest> header,
                                      Ptr<const Packet> origPacket,
                                      Ptr<pit::Entry> pitEntry)
 {
@@ -76,7 +76,7 @@
 
 void
 CustomStrategy::DidSendOutInterest (Ptr<Face> inFace, Ptr<Face> outFace,
-                                    Ptr<const InterestHeader> header,
+                                    Ptr<const Interest> header,
                                     Ptr<const Packet> origPacket,
                                     Ptr<pit::Entry> pitEntry)
 {
diff --git a/examples/custom-strategies/custom-strategy.h b/examples/custom-strategies/custom-strategy.h
index 0c1fbf2..057669a 100644
--- a/examples/custom-strategies/custom-strategy.h
+++ b/examples/custom-strategies/custom-strategy.h
@@ -30,14 +30,14 @@
 protected:
   virtual bool
   DoPropagateInterest (Ptr<Face> incomingFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 
 public:
   virtual void
   DidSendOutInterest (Ptr<Face> inFace, Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
 
diff --git a/helper/ndn-header-helper.cc b/helper/ndn-header-helper.cc
index ee22b43..f9145cc 100644
--- a/helper/ndn-header-helper.cc
+++ b/helper/ndn-header-helper.cc
@@ -81,7 +81,7 @@
         {
         case HeaderHelper::INTEREST_NDNSIM:
           {
-            Ptr<InterestHeader> header = Create<InterestHeader> ();
+            Ptr<Interest> header = Create<Interest> ();
 
             // Deserialization. Exception may be thrown
             packet->RemoveHeader (*header);
@@ -92,7 +92,7 @@
           }
         case HeaderHelper::CONTENT_OBJECT_NDNSIM:
           {
-            Ptr<ContentObjectHeader> header = Create<ContentObjectHeader> ();
+            Ptr<ContentObject> header = Create<ContentObject> ();
 
             // Deserialization. Exception may be thrown
             packet->RemoveHeader (*header);
diff --git a/helper/ndn-header-helper.h b/helper/ndn-header-helper.h
index a5a4d2f..cce07dd 100644
--- a/helper/ndn-header-helper.h
+++ b/helper/ndn-header-helper.h
@@ -40,7 +40,7 @@
  *
  * Ndn doesn't really have a header, so we need this class to
  * determine type of Ndn packet and return corresponent header class,
- * InterestHeader or ContentObjectHeader
+ * Interest or ContentObject
  *
  * Throws UnknownHeaderException if header type couldn't be determined
  */
diff --git a/model/cs/content-store-impl.h b/model/cs/content-store-impl.h
index 7ed8ae3..ffe8038 100644
--- a/model/cs/content-store-impl.h
+++ b/model/cs/content-store-impl.h
@@ -44,7 +44,7 @@
   typedef Entry base_type;
 
 public:
-  EntryImpl (Ptr<ContentStore> cs, Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet)
+  EntryImpl (Ptr<ContentStore> cs, Ptr<const ContentObject> header, Ptr<const Packet> packet)
     : Entry (cs, header, packet)
     , item_ (0)
   {
@@ -86,14 +86,14 @@
 
   // from ContentStore
 
-  virtual inline boost::tuple<Ptr<Packet>, Ptr<const ContentObjectHeader>, Ptr<const Packet> >
-  Lookup (Ptr<const InterestHeader> interest);
+  virtual inline boost::tuple<Ptr<Packet>, Ptr<const ContentObject>, Ptr<const Packet> >
+  Lookup (Ptr<const Interest> interest);
 
   virtual inline bool
-  Add (Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet);
+  Add (Ptr<const ContentObject> header, Ptr<const Packet> packet);
 
   // virtual bool
-  // Remove (Ptr<InterestHeader> header);
+  // Remove (Ptr<Interest> header);
 
   virtual inline void
   Print (std::ostream &os) const;
@@ -156,8 +156,8 @@
 }
 
 template<class Policy>
-boost::tuple<Ptr<Packet>, Ptr<const ContentObjectHeader>, Ptr<const Packet> >
-ContentStoreImpl<Policy>::Lookup (Ptr<const InterestHeader> interest)
+boost::tuple<Ptr<Packet>, Ptr<const ContentObject>, Ptr<const Packet> >
+ContentStoreImpl<Policy>::Lookup (Ptr<const Interest> interest)
 {
   NS_LOG_FUNCTION (this << interest->GetName ());
 
@@ -177,13 +177,13 @@
     {
       // NS_LOG_DEBUG ("cache miss for " << interest->GetName ());
       this->m_cacheMissesTrace (interest);
-      return boost::tuple<Ptr<Packet>, Ptr<ContentObjectHeader>, Ptr<Packet> > (0, 0, 0);
+      return boost::tuple<Ptr<Packet>, Ptr<ContentObject>, Ptr<Packet> > (0, 0, 0);
     }
 }
 
 template<class Policy>
 bool
-ContentStoreImpl<Policy>::Add (Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet)
+ContentStoreImpl<Policy>::Add (Ptr<const ContentObject> header, Ptr<const Packet> packet)
 {
   NS_LOG_FUNCTION (this << header->GetName ());
 
diff --git a/model/cs/content-store-with-freshness.h b/model/cs/content-store-with-freshness.h
index 6858f97..dab654c 100644
--- a/model/cs/content-store-with-freshness.h
+++ b/model/cs/content-store-with-freshness.h
@@ -43,7 +43,7 @@
   GetTypeId ();
 
   virtual inline bool
-  Add (Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet);
+  Add (Ptr<const ContentObject> header, Ptr<const Packet> packet);
 
 private:
   inline void
@@ -87,7 +87,7 @@
 
 template<class Policy>
 inline bool
-ContentStoreWithFreshness< Policy >::Add (Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet)
+ContentStoreWithFreshness< Policy >::Add (Ptr<const ContentObject> header, Ptr<const Packet> packet)
 {
   bool ok = super::Add (header, packet);
   if (!ok) return false;
diff --git a/model/cs/ndn-content-store.cc b/model/cs/ndn-content-store.cc
index 98e118d..c99d7ed 100644
--- a/model/cs/ndn-content-store.cc
+++ b/model/cs/ndn-content-store.cc
@@ -60,7 +60,7 @@
 
 //////////////////////////////////////////////////////////////////////
 
-Entry::Entry (Ptr<ContentStore> cs, Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet)
+Entry::Entry (Ptr<ContentStore> cs, Ptr<const ContentObject> header, Ptr<const Packet> packet)
   : m_cs (cs)
   , m_header (header)
   , m_packet (packet->Copy ())
@@ -84,7 +84,7 @@
   return m_header->GetName ();
 }
 
-Ptr<const ContentObjectHeader>
+Ptr<const ContentObject>
 Entry::GetHeader () const
 {
   return m_header;
diff --git a/model/cs/ndn-content-store.h b/model/cs/ndn-content-store.h
index 1e01a6e..9edfb52 100644
--- a/model/cs/ndn-content-store.h
+++ b/model/cs/ndn-content-store.h
@@ -34,8 +34,8 @@
 
 namespace ndn {
 
-class ContentObjectHeader;
-class InterestHeader;
+class ContentObject;
+class Interest;
 class Name;
 
 class ContentStore;
@@ -65,7 +65,7 @@
    * The constructor will make a copy of the supplied packet and calls
    * RemoveHeader and RemoveTail on the copy.
    */
-  Entry (Ptr<ContentStore> cs, Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet);
+  Entry (Ptr<ContentStore> cs, Ptr<const ContentObject> header, Ptr<const Packet> packet);
 
   /**
    * \brief Get prefix of the stored entry
@@ -75,10 +75,10 @@
   GetName () const;
 
   /**
-   * \brief Get ContentObjectHeader of the stored entry
-   * \returns ContentObjectHeader of the stored entry
+   * \brief Get ContentObject of the stored entry
+   * \returns ContentObject of the stored entry
    */
-  Ptr<const ContentObjectHeader>
+  Ptr<const ContentObject>
   GetHeader () const;
 
   /**
@@ -90,7 +90,7 @@
 
   /**
    * \brief Convenience method to create a fully formed Ndn packet from stored header and content
-   * \returns A read-write copy of the packet with ContentObjectHeader and ContentObjectTail
+   * \returns A read-write copy of the packet with ContentObject and ContentObjectTail
    */
   Ptr<Packet>
   GetFullyFormedNdnPacket () const;
@@ -103,7 +103,7 @@
 
 private:
   Ptr<ContentStore> m_cs; ///< \brief content store to which entry is added
-  Ptr<const ContentObjectHeader> m_header; ///< \brief non-modifiable ContentObjectHeader
+  Ptr<const ContentObject> m_header; ///< \brief non-modifiable ContentObject
   Ptr<Packet> m_packet; ///< \brief non-modifiable content of the ContentObject packet
 };
 
@@ -142,19 +142,19 @@
    * If an entry is found, it is promoted to the top of most recent
    * used entries index, \see m_contentStore
    */
-  virtual boost::tuple<Ptr<Packet>, Ptr<const ContentObjectHeader>, Ptr<const Packet> >
-  Lookup (Ptr<const InterestHeader> interest) = 0;
+  virtual boost::tuple<Ptr<Packet>, Ptr<const ContentObject>, Ptr<const Packet> >
+  Lookup (Ptr<const Interest> interest) = 0;
 
   /**
    * \brief Add a new content to the content store.
    *
-   * \param header Fully parsed ContentObjectHeader
+   * \param header Fully parsed ContentObject
    * \param packet Fully formed Ndn packet to add to content store
    * (will be copied and stripped down of headers)
    * @returns true if an existing entry was updated, false otherwise
    */
   virtual bool
-  Add (Ptr<const ContentObjectHeader> header, Ptr<const Packet> packet) = 0;
+  Add (Ptr<const ContentObject> header, Ptr<const Packet> packet) = 0;
 
   // /*
   //  * \brief Add a new content to the content store.
@@ -163,7 +163,7 @@
   //  * @returns true if an existing entry was removed, false otherwise
   //  */
   // virtual bool
-  // Remove (Ptr<InterestHeader> header) = 0;
+  // Remove (Ptr<Interest> header) = 0;
 
   /**
    * \brief Print out content store entries
@@ -207,10 +207,10 @@
   GetContentStore (Ptr<Object> node);
 
 protected:
-  TracedCallback<Ptr<const InterestHeader>,
-                 Ptr<const ContentObjectHeader> > m_cacheHitsTrace; ///< @brief trace of cache hits
+  TracedCallback<Ptr<const Interest>,
+                 Ptr<const ContentObject> > m_cacheHitsTrace; ///< @brief trace of cache hits
 
-  TracedCallback<Ptr<const InterestHeader> > m_cacheMissesTrace; ///< @brief trace of cache misses
+  TracedCallback<Ptr<const Interest> > m_cacheMissesTrace; ///< @brief trace of cache misses
 };
 
 inline std::ostream&
diff --git a/model/fib/ndn-fib-impl.cc b/model/fib/ndn-fib-impl.cc
index 18ee6ac..1e0f04f 100644
--- a/model/fib/ndn-fib-impl.cc
+++ b/model/fib/ndn-fib-impl.cc
@@ -72,7 +72,7 @@
 
 
 Ptr<Entry>
-FibImpl::LongestPrefixMatch (const InterestHeader &interest)
+FibImpl::LongestPrefixMatch (const Interest &interest)
 {
   super::iterator item = super::longest_prefix_match (interest.GetName ());
   // @todo use predicate to search with exclude filters
diff --git a/model/fib/ndn-fib-impl.h b/model/fib/ndn-fib-impl.h
index 9b45ba2..0755b35 100644
--- a/model/fib/ndn-fib-impl.h
+++ b/model/fib/ndn-fib-impl.h
@@ -86,7 +86,7 @@
   FibImpl ();
 
   virtual Ptr<Entry>
-  LongestPrefixMatch (const InterestHeader &interest);
+  LongestPrefixMatch (const Interest &interest);
   
   virtual Ptr<Entry>
   Add (const Name &prefix, Ptr<Face> face, int32_t metric);
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index 141a402..85e0eaf 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -29,7 +29,7 @@
 namespace ns3 {
 namespace ndn {
 
-class InterestHeader;
+class Interest;
 
 /**
  * \ingroup ndn
@@ -63,7 +63,7 @@
    * \returns If entry found a valid iterator (Ptr<fib::Entry>) will be returned, otherwise End () (==0)
    */
   virtual Ptr<fib::Entry>
-  LongestPrefixMatch (const InterestHeader &interest) = 0;
+  LongestPrefixMatch (const Interest &interest) = 0;
   
   /**
    * \brief Add or update FIB entry
diff --git a/model/fw/best-route.cc b/model/fw/best-route.cc
index 08bbd7c..59f8720 100644
--- a/model/fw/best-route.cc
+++ b/model/fw/best-route.cc
@@ -65,7 +65,7 @@
 
 bool
 BestRoute::DoPropagateInterest (Ptr<Face> inFace,
-                                Ptr<const InterestHeader> header,
+                                Ptr<const Interest> header,
                                 Ptr<const Packet> origPacket,
                                 Ptr<pit::Entry> pitEntry)
 {
diff --git a/model/fw/best-route.h b/model/fw/best-route.h
index 6e17b99..f7caa19 100644
--- a/model/fw/best-route.h
+++ b/model/fw/best-route.h
@@ -58,7 +58,7 @@
   // from super
   virtual bool
   DoPropagateInterest (Ptr<Face> incomingFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 protected:
diff --git a/model/fw/flooding.cc b/model/fw/flooding.cc
index 0c369b7..3672b24 100644
--- a/model/fw/flooding.cc
+++ b/model/fw/flooding.cc
@@ -66,7 +66,7 @@
 
 bool
 Flooding::DoPropagateInterest (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> origPacket,
                                Ptr<pit::Entry> pitEntry)
 {
diff --git a/model/fw/flooding.h b/model/fw/flooding.h
index c4f6205..5eadabb 100644
--- a/model/fw/flooding.h
+++ b/model/fw/flooding.h
@@ -60,7 +60,7 @@
   // inherited from  Nacks/ForwardingStrategy
   virtual bool
   DoPropagateInterest (Ptr<Face> inFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 
diff --git a/model/fw/green-yellow-red.cc b/model/fw/green-yellow-red.cc
index 3b5fd13..5d6a001 100644
--- a/model/fw/green-yellow-red.cc
+++ b/model/fw/green-yellow-red.cc
@@ -64,7 +64,7 @@
 
 bool
 GreenYellowRed::DoPropagateInterest (Ptr<Face> inFace,
-                                     Ptr<const InterestHeader> header,
+                                     Ptr<const Interest> header,
                                      Ptr<const Packet> origPacket,
                                      Ptr<pit::Entry> pitEntry)
 {
@@ -123,15 +123,15 @@
 void
 GreenYellowRed::DidReceiveValidNack (Ptr<Face> inFace,
                                      uint32_t nackCode,
-                                     Ptr<const InterestHeader> header,
+                                     Ptr<const Interest> header,
                                      Ptr<const Packet> origPacket,
                                      Ptr<pit::Entry> pitEntry)
 {
   super::DidReceiveValidNack (inFace, nackCode, header, origPacket, pitEntry);
 
   if (inFace != 0 &&
-      (nackCode == InterestHeader::NACK_CONGESTION ||
-       nackCode == InterestHeader::NACK_GIVEUP_PIT))
+      (nackCode == Interest::NACK_CONGESTION ||
+       nackCode == Interest::NACK_GIVEUP_PIT))
     {
       pitEntry->GetFibEntry ()->UpdateStatus (inFace, fib::FaceMetric::NDN_FIB_YELLOW);
     }
diff --git a/model/fw/green-yellow-red.h b/model/fw/green-yellow-red.h
index e82c93b..1c4dcde 100644
--- a/model/fw/green-yellow-red.h
+++ b/model/fw/green-yellow-red.h
@@ -44,7 +44,7 @@
 
   virtual bool
   DoPropagateInterest (Ptr<Face> inFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 
@@ -54,7 +54,7 @@
   virtual void
   DidReceiveValidNack (Ptr<Face> incomingFace,
                        uint32_t nackCode,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 private:
diff --git a/model/fw/nacks.cc b/model/fw/nacks.cc
index 00bf840..6bafefb 100644
--- a/model/fw/nacks.cc
+++ b/model/fw/nacks.cc
@@ -75,7 +75,7 @@
 
 void
 Nacks::OnInterest (Ptr<Face> inFace,
-                   Ptr<const InterestHeader> header,
+                   Ptr<const Interest> header,
                    Ptr<const Packet> origPacket)
 {
   if (header->GetNack () > 0)
@@ -86,7 +86,7 @@
 
 void
 Nacks::OnNack (Ptr<Face> inFace,
-               Ptr<const InterestHeader> header,
+               Ptr<const Interest> header,
                Ptr<const Packet> origPacket)
 {
   // NS_LOG_FUNCTION (inFace << header->GetName ());
@@ -105,7 +105,7 @@
 
 void
 Nacks::DidReceiveDuplicateInterest (Ptr<Face> inFace,
-                                    Ptr<const InterestHeader> header,
+                                    Ptr<const Interest> header,
                                     Ptr<const Packet> origPacket,
                                     Ptr<pit::Entry> pitEntry)
 {
@@ -114,8 +114,8 @@
   if (m_nacksEnabled)
     {
       NS_LOG_DEBUG ("Sending NACK_LOOP");
-      Ptr<InterestHeader> nackHeader = Create<InterestHeader> (*header);
-      nackHeader->SetNack (InterestHeader::NACK_LOOP);
+      Ptr<Interest> nackHeader = Create<Interest> (*header);
+      nackHeader->SetNack (Interest::NACK_LOOP);
       Ptr<Packet> nack = Create<Packet> ();
       nack->AddHeader (*nackHeader);
 
@@ -136,15 +136,15 @@
 
 void
 Nacks::DidExhaustForwardingOptions (Ptr<Face> inFace,
-                                    Ptr<const InterestHeader> header,
+                                    Ptr<const Interest> header,
                                     Ptr<const Packet> origPacket,
                                     Ptr<pit::Entry> pitEntry)
 {
   if (m_nacksEnabled)
     {
       Ptr<Packet> packet = Create<Packet> ();
-      Ptr<InterestHeader> nackHeader = Create<InterestHeader> (*header);
-      nackHeader->SetNack (InterestHeader::NACK_GIVEUP_PIT);
+      Ptr<Interest> nackHeader = Create<Interest> (*header);
+      nackHeader->SetNack (Interest::NACK_GIVEUP_PIT);
       packet->AddHeader (*nackHeader);
 
       FwHopCountTag hopCountTag;
@@ -174,7 +174,7 @@
 void
 Nacks::DidReceiveValidNack (Ptr<Face> inFace,
                             uint32_t nackCode,
-                            Ptr<const InterestHeader> header,
+                            Ptr<const Interest> header,
                             Ptr<const Packet> origPacket,
                             Ptr<pit::Entry> pitEntry)
 {
@@ -182,14 +182,14 @@
 
   // If NACK is NACK_GIVEUP_PIT, then neighbor gave up trying to and removed it's PIT entry.
   // So, if we had an incoming entry to this neighbor, then we can remove it now
-  if (nackCode == InterestHeader::NACK_GIVEUP_PIT)
+  if (nackCode == Interest::NACK_GIVEUP_PIT)
     {
       pitEntry->RemoveIncoming (inFace);
     }
 
-  if (nackCode == InterestHeader::NACK_LOOP ||
-      nackCode == InterestHeader::NACK_CONGESTION ||
-      nackCode == InterestHeader::NACK_GIVEUP_PIT)
+  if (nackCode == Interest::NACK_LOOP ||
+      nackCode == Interest::NACK_CONGESTION ||
+      nackCode == Interest::NACK_GIVEUP_PIT)
     {
       pitEntry->SetWaitingInVain (inFace);
 
@@ -203,8 +203,8 @@
         }
 
       Ptr<Packet> nonNackInterest = Create<Packet> ();
-      Ptr<InterestHeader> nonNackHeader = Create<InterestHeader> (*header);
-      nonNackHeader->SetNack (InterestHeader::NORMAL_INTEREST);
+      Ptr<Interest> nonNackHeader = Create<Interest> (*header);
+      nonNackHeader->SetNack (Interest::NORMAL_INTEREST);
       nonNackInterest->AddHeader (*nonNackHeader);
 
       FwHopCountTag hopCountTag;
diff --git a/model/fw/nacks.h b/model/fw/nacks.h
index 421897b..19a9ecb 100644
--- a/model/fw/nacks.h
+++ b/model/fw/nacks.h
@@ -43,46 +43,46 @@
   // from super
   virtual void
   OnInterest (Ptr<Face> face,
-              Ptr<const InterestHeader> header,
+              Ptr<const Interest> header,
               Ptr<const Packet> origPacket);
 
 protected:
   // from super
   virtual void
   DidReceiveDuplicateInterest (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> packet,
                                Ptr<pit::Entry> pitEntry);
 
   // from super
   virtual void
   DidExhaustForwardingOptions (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> packet,
                                Ptr<pit::Entry> pitEntry);
 
   virtual void
   OnNack (Ptr<Face> inFace,
-          Ptr<const InterestHeader> header,
+          Ptr<const Interest> header,
           Ptr<const Packet> origPacket);
 
   virtual void
   DidReceiveValidNack (Ptr<Face> inFace,
                        uint32_t nackCode,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
   
 protected:  
   bool m_nacksEnabled;
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_outNacks; ///< @brief trace of outgoing NACKs
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_inNacks; ///< @brief trace of incoming NACKs
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_dropNacks; ///< @brief trace of dropped NACKs
 };
 
diff --git a/model/fw/ndn-forwarding-strategy.cc b/model/fw/ndn-forwarding-strategy.cc
index 6dc5bb0..7532f13 100644
--- a/model/fw/ndn-forwarding-strategy.cc
+++ b/model/fw/ndn-forwarding-strategy.cc
@@ -132,7 +132,7 @@
 
 void
 ForwardingStrategy::OnInterest (Ptr<Face> inFace,
-                                Ptr<const InterestHeader> header,
+                                Ptr<const Interest> header,
                                 Ptr<const Packet> origPacket)
 {
   m_inInterests (header, inFace);
@@ -168,7 +168,7 @@
     }
 
   Ptr<Packet> contentObject;
-  Ptr<const ContentObjectHeader> contentObjectHeader; // used for tracing
+  Ptr<const ContentObject> contentObjectHeader; // used for tracing
   Ptr<const Packet> payload; // used for tracing
   boost::tie (contentObject, contentObjectHeader, payload) = m_contentStore->Lookup (header);
   if (contentObject != 0)
@@ -215,7 +215,7 @@
 
 void
 ForwardingStrategy::OnData (Ptr<Face> inFace,
-                            Ptr<const ContentObjectHeader> header,
+                            Ptr<const ContentObject> header,
                             Ptr<Packet> payload,
                             Ptr<const Packet> origPacket)
 {
@@ -287,7 +287,7 @@
 
 void
 ForwardingStrategy::DidCreatePitEntry (Ptr<Face> inFace,
-                                       Ptr<const InterestHeader> header,
+                                       Ptr<const Interest> header,
                                        Ptr<const Packet> origPacket,
                                        Ptr<pit::Entry> pitEntrypitEntry)
 {
@@ -295,7 +295,7 @@
 
 void
 ForwardingStrategy::FailedToCreatePitEntry (Ptr<Face> inFace,
-                                            Ptr<const InterestHeader> header,
+                                            Ptr<const Interest> header,
                                             Ptr<const Packet> origPacket)
 {
   m_dropInterests (header, inFace);
@@ -303,7 +303,7 @@
 
 void
 ForwardingStrategy::DidReceiveDuplicateInterest (Ptr<Face> inFace,
-                                                 Ptr<const InterestHeader> header,
+                                                 Ptr<const Interest> header,
                                                  Ptr<const Packet> origPacket,
                                                  Ptr<pit::Entry> pitEntry)
 {
@@ -318,7 +318,7 @@
 
 void
 ForwardingStrategy::DidSuppressSimilarInterest (Ptr<Face> face,
-                                                Ptr<const InterestHeader> header,
+                                                Ptr<const Interest> header,
                                                 Ptr<const Packet> origPacket,
                                                 Ptr<pit::Entry> pitEntry)
 {
@@ -326,7 +326,7 @@
 
 void
 ForwardingStrategy::DidForwardSimilarInterest (Ptr<Face> inFace,
-                                               Ptr<const InterestHeader> header,
+                                               Ptr<const Interest> header,
                                                Ptr<const Packet> origPacket,
                                                Ptr<pit::Entry> pitEntry)
 {
@@ -334,7 +334,7 @@
 
 void
 ForwardingStrategy::DidExhaustForwardingOptions (Ptr<Face> inFace,
-                                                 Ptr<const InterestHeader> header,
+                                                 Ptr<const Interest> header,
                                                  Ptr<const Packet> origPacket,
                                                  Ptr<pit::Entry> pitEntry)
 {
@@ -358,7 +358,7 @@
 
 bool
 ForwardingStrategy::DetectRetransmittedInterest (Ptr<Face> inFace,
-                                                 Ptr<const InterestHeader> header,
+                                                 Ptr<const Interest> header,
                                                  Ptr<const Packet> packet,
                                                  Ptr<pit::Entry> pitEntry)
 {
@@ -377,7 +377,7 @@
 
 void
 ForwardingStrategy::SatisfyPendingInterest (Ptr<Face> inFace,
-                                            Ptr<const ContentObjectHeader> header,
+                                            Ptr<const ContentObject> header,
                                             Ptr<const Packet> payload,
                                             Ptr<const Packet> origPacket,
                                             Ptr<pit::Entry> pitEntry)
@@ -417,7 +417,7 @@
 
 void
 ForwardingStrategy::DidReceiveSolicitedData (Ptr<Face> inFace,
-                                             Ptr<const ContentObjectHeader> header,
+                                             Ptr<const ContentObject> header,
                                              Ptr<const Packet> payload,
                                              Ptr<const Packet> origPacket,
                                              bool didCreateCacheEntry)
@@ -427,7 +427,7 @@
 
 void
 ForwardingStrategy::DidReceiveUnsolicitedData (Ptr<Face> inFace,
-                                               Ptr<const ContentObjectHeader> header,
+                                               Ptr<const ContentObject> header,
                                                Ptr<const Packet> payload,
                                                Ptr<const Packet> origPacket,
                                                bool didCreateCacheEntry)
@@ -450,7 +450,7 @@
 
 bool
 ForwardingStrategy::ShouldSuppressIncomingInterest (Ptr<Face> inFace,
-                                                    Ptr<const InterestHeader> header,
+                                                    Ptr<const Interest> header,
                                                     Ptr<const Packet> origPacket,
                                                     Ptr<pit::Entry> pitEntry)
 {
@@ -485,7 +485,7 @@
 
 void
 ForwardingStrategy::PropagateInterest (Ptr<Face> inFace,
-                                       Ptr<const InterestHeader> header,
+                                       Ptr<const Interest> header,
                                        Ptr<const Packet> origPacket,
                                        Ptr<pit::Entry> pitEntry)
 {
@@ -526,7 +526,7 @@
 bool
 ForwardingStrategy::CanSendOutInterest (Ptr<Face> inFace,
                                         Ptr<Face> outFace,
-                                        Ptr<const InterestHeader> header,
+                                        Ptr<const Interest> header,
                                         Ptr<const Packet> origPacket,
                                         Ptr<pit::Entry> pitEntry)
 {
@@ -557,7 +557,7 @@
 bool
 ForwardingStrategy::TrySendOutInterest (Ptr<Face> inFace,
                                         Ptr<Face> outFace,
-                                        Ptr<const InterestHeader> header,
+                                        Ptr<const Interest> header,
                                         Ptr<const Packet> origPacket,
                                         Ptr<pit::Entry> pitEntry)
 {
@@ -580,7 +580,7 @@
 void
 ForwardingStrategy::DidSendOutInterest (Ptr<Face> inFace,
                                         Ptr<Face> outFace,
-                                        Ptr<const InterestHeader> header,
+                                        Ptr<const Interest> header,
                                         Ptr<const Packet> origPacket,
                                         Ptr<pit::Entry> pitEntry)
 {
@@ -590,7 +590,7 @@
 void
 ForwardingStrategy::DidSendOutData (Ptr<Face> inFace,
                                     Ptr<Face> outFace,
-                                    Ptr<const ContentObjectHeader> header,
+                                    Ptr<const ContentObject> header,
                                     Ptr<const Packet> payload,
                                     Ptr<const Packet> origPacket,
                                     Ptr<pit::Entry> pitEntry)
diff --git a/model/fw/ndn-forwarding-strategy.h b/model/fw/ndn-forwarding-strategy.h
index 04b34a2..5e624b6 100644
--- a/model/fw/ndn-forwarding-strategy.h
+++ b/model/fw/ndn-forwarding-strategy.h
@@ -30,8 +30,8 @@
 namespace ndn {
 
 class Face;
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 class Pit;
 namespace pit { class Entry; }
 class FibFaceMetric;
@@ -70,7 +70,7 @@
    */
   virtual void
   OnInterest (Ptr<Face> face,
-              Ptr<const InterestHeader> header,
+              Ptr<const Interest> header,
               Ptr<const Packet> origPacket);
 
   /**
@@ -84,7 +84,7 @@
    */
   virtual void
   OnData (Ptr<Face> face,
-          Ptr<const ContentObjectHeader> header,
+          Ptr<const ContentObject> header,
           Ptr<Packet> payload,
           Ptr<const Packet> origPacket);
 
@@ -144,7 +144,7 @@
    */
   virtual void
   DidCreatePitEntry (Ptr<Face> inFace,
-                     Ptr<const InterestHeader> header,
+                     Ptr<const Interest> header,
                      Ptr<const Packet> origPacket,
                      Ptr<pit::Entry> pitEntry);
 
@@ -160,7 +160,7 @@
    */
   virtual void
   FailedToCreatePitEntry (Ptr<Face> inFace,
-                          Ptr<const InterestHeader> header,
+                          Ptr<const Interest> header,
                           Ptr<const Packet> origPacket);
 
   /**
@@ -177,7 +177,7 @@
    */
   virtual void
   DidReceiveDuplicateInterest (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> origPacket,
                                Ptr<pit::Entry> pitEntry);
 
@@ -195,7 +195,7 @@
    */
   virtual void
   DidSuppressSimilarInterest (Ptr<Face> inFace,
-                              Ptr<const InterestHeader> header,
+                              Ptr<const Interest> header,
                               Ptr<const Packet> origPacket,
                               Ptr<pit::Entry> pitEntry);
 
@@ -213,7 +213,7 @@
    */
   virtual void
   DidForwardSimilarInterest (Ptr<Face> inFace,
-                             Ptr<const InterestHeader> header,
+                             Ptr<const Interest> header,
                              Ptr<const Packet> origPacket,
                              Ptr<pit::Entry> pitEntry);
 
@@ -232,7 +232,7 @@
    */
   virtual void
   DidExhaustForwardingOptions (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> origPacket,
                                Ptr<pit::Entry> pitEntry);
 
@@ -252,7 +252,7 @@
    */
   virtual bool
   DetectRetransmittedInterest (Ptr<Face> inFace,
-                               Ptr<const InterestHeader> header,
+                               Ptr<const Interest> header,
                                Ptr<const Packet> origPacket,
                                Ptr<pit::Entry> pitEntry);
 
@@ -281,7 +281,7 @@
    */
   virtual void
   SatisfyPendingInterest (Ptr<Face> inFace, // 0 allowed (from cache)
-                          Ptr<const ContentObjectHeader> header,
+                          Ptr<const ContentObject> header,
                           Ptr<const Packet> payload,
                           Ptr<const Packet> origPacket,
                           Ptr<pit::Entry> pitEntry);
@@ -299,7 +299,7 @@
   virtual void
   DidSendOutData (Ptr<Face> inFace,
                   Ptr<Face> outFace,
-                  Ptr<const ContentObjectHeader> header,
+                  Ptr<const ContentObject> header,
                   Ptr<const Packet> payload,
                   Ptr<const Packet> origPacket,
                   Ptr<pit::Entry> pitEntry);
@@ -315,7 +315,7 @@
    */
   virtual void
   DidReceiveSolicitedData (Ptr<Face> inFace,
-                           Ptr<const ContentObjectHeader> header,
+                           Ptr<const ContentObject> header,
                            Ptr<const Packet> payload,
                            Ptr<const Packet> origPacket,
                            bool didCreateCacheEntry);
@@ -334,7 +334,7 @@
    */
   virtual void
   DidReceiveUnsolicitedData (Ptr<Face> inFace,
-                             Ptr<const ContentObjectHeader> header,
+                             Ptr<const ContentObject> header,
                              Ptr<const Packet> payload,
                              Ptr<const Packet> origPacket,
                              bool didCreateCacheEntry);
@@ -354,7 +354,7 @@
    */
   virtual bool
   ShouldSuppressIncomingInterest (Ptr<Face> inFace,
-                                  Ptr<const InterestHeader> header,
+                                  Ptr<const Interest> header,
                                   Ptr<const Packet> origPacket,
                                   Ptr<pit::Entry> pitEntry);
 
@@ -377,7 +377,7 @@
   virtual bool
   CanSendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
 
@@ -397,7 +397,7 @@
   virtual bool
   TrySendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
 
@@ -413,7 +413,7 @@
   virtual void
   DidSendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
 
@@ -432,7 +432,7 @@
    */
   virtual void
   PropagateInterest (Ptr<Face> inFace,
-                     Ptr<const InterestHeader> header,
+                     Ptr<const Interest> header,
                      Ptr<const Packet> origPacket,
                      Ptr<pit::Entry> pitEntry);
 
@@ -457,7 +457,7 @@
    */
   virtual bool
   DoPropagateInterest (Ptr<Face> inFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry) = 0;
 
@@ -474,27 +474,27 @@
   bool m_cacheUnsolicitedData;
   bool m_detectRetransmissions;
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_outInterests; ///< @brief Transmitted interests trace
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_inInterests; ///< @brief trace of incoming Interests
 
-  TracedCallback<Ptr<const InterestHeader>,
+  TracedCallback<Ptr<const Interest>,
                  Ptr<const Face> > m_dropInterests; ///< @brief trace of dropped Interests
 
   ////////////////////////////////////////////////////////////////////
   ////////////////////////////////////////////////////////////////////
   ////////////////////////////////////////////////////////////////////
 
-  TracedCallback<Ptr<const ContentObjectHeader>, Ptr<const Packet>,
+  TracedCallback<Ptr<const ContentObject>, Ptr<const Packet>,
                  bool /*from cache*/,
                  Ptr<const Face> > m_outData; ///< @brief trace of outgoing Data
 
-  TracedCallback<Ptr<const ContentObjectHeader>, Ptr<const Packet>,
+  TracedCallback<Ptr<const ContentObject>, Ptr<const Packet>,
                  Ptr<const Face> > m_inData; ///< @brief trace of incoming Data
 
-  TracedCallback<Ptr<const ContentObjectHeader>, Ptr<const Packet>,
+  TracedCallback<Ptr<const ContentObject>, Ptr<const Packet>,
                   Ptr<const Face> > m_dropData;  ///< @brief trace of dropped Data
 };
 
diff --git a/model/fw/per-fib-limits.h b/model/fw/per-fib-limits.h
index 4affec9..6a18f13 100644
--- a/model/fw/per-fib-limits.h
+++ b/model/fw/per-fib-limits.h
@@ -99,7 +99,7 @@
   virtual bool
   CanSendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
 
@@ -141,7 +141,7 @@
 bool
 PerFibLimits<Parent>::CanSendOutInterest (Ptr<Face> inFace,
                                           Ptr<Face> outFace,
-                                          Ptr<const InterestHeader> header,
+                                          Ptr<const Interest> header,
                                           Ptr<const Packet> origPacket,
                                           Ptr<pit::Entry> pitEntry)
 {
diff --git a/model/fw/per-out-face-limits.h b/model/fw/per-out-face-limits.h
index 2c4a935..2929b5b 100644
--- a/model/fw/per-out-face-limits.h
+++ b/model/fw/per-out-face-limits.h
@@ -87,7 +87,7 @@
   virtual bool
   CanSendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
-                      Ptr<const InterestHeader> header,
+                      Ptr<const Interest> header,
                       Ptr<const Packet> origPacket,
                       Ptr<pit::Entry> pitEntry);
   
@@ -134,7 +134,7 @@
 bool
 PerOutFaceLimits<Parent>::CanSendOutInterest (Ptr<Face> inFace,
                                               Ptr<Face> outFace,
-                                              Ptr<const InterestHeader> header,
+                                              Ptr<const Interest> header,
                                               Ptr<const Packet> origPacket,
                                               Ptr<pit::Entry> pitEntry)
 {
diff --git a/model/fw/smart-flooding.cc b/model/fw/smart-flooding.cc
index c8b8406..97faaf7 100644
--- a/model/fw/smart-flooding.cc
+++ b/model/fw/smart-flooding.cc
@@ -66,7 +66,7 @@
 
 bool
 SmartFlooding::DoPropagateInterest (Ptr<Face> inFace,
-                                    Ptr<const InterestHeader> header,
+                                    Ptr<const Interest> header,
                                     Ptr<const Packet> origPacket,
                                     Ptr<pit::Entry> pitEntry)
 {
diff --git a/model/fw/smart-flooding.h b/model/fw/smart-flooding.h
index f66d1e8..e1637aa 100644
--- a/model/fw/smart-flooding.h
+++ b/model/fw/smart-flooding.h
@@ -55,7 +55,7 @@
   // inherited
   virtual bool
   DoPropagateInterest (Ptr<Face> inFace,
-                       Ptr<const InterestHeader> header,
+                       Ptr<const Interest> header,
                        Ptr<const Packet> origPacket,
                        Ptr<pit::Entry> pitEntry);
 
diff --git a/model/ndn-app-face.cc b/model/ndn-app-face.cc
index e735b9a..9f9265e 100644
--- a/model/ndn-app-face.cc
+++ b/model/ndn-app-face.cc
@@ -103,7 +103,7 @@
         {
         case HeaderHelper::INTEREST_NDNSIM:
           {
-            Ptr<InterestHeader> header = Create<InterestHeader> ();
+            Ptr<Interest> header = Create<Interest> ();
             p->RemoveHeader (*header);
 
             if (header->GetNack () > 0)
@@ -116,7 +116,7 @@
         case HeaderHelper::CONTENT_OBJECT_NDNSIM:
           {
             static ContentObjectTail tail;
-            Ptr<ContentObjectHeader> header = Create<ContentObjectHeader> ();
+            Ptr<ContentObject> header = Create<ContentObject> ();
             p->RemoveHeader (*header);
             p->RemoveTrailer (tail);
             m_app->OnContentObject (header, p/*payload*/);
diff --git a/model/ndn-app-face.h b/model/ndn-app-face.h
index 2e58705..276fdfd 100644
--- a/model/ndn-app-face.h
+++ b/model/ndn-app-face.h
@@ -31,8 +31,8 @@
 
 namespace ndn {
 
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 class App;
 
 /**
diff --git a/model/ndn-content-object.h b/model/ndn-content-object.h
index db7bdcf..2022f2f 100644
--- a/model/ndn-content-object.h
+++ b/model/ndn-content-object.h
@@ -42,7 +42,7 @@
  * 
  * Only few important fields are actually implemented in the simulation
  *
- * ContentObjectHeader serializes/deserializes header up-to and including <Content> tags
+ * ContentObject serializes/deserializes header up-to and including <Content> tags
  * Necessary closing tags should be added using ContentObjectTail
  *
  * Optimized and simplified formatting of Interest packets 
@@ -127,7 +127,7 @@
   Time m_timestamp;
 };
 
-class ContentObjectHeader : public ContentObject { };
+typedef ContentObject ContentObjectHeader; 
 
 /**
  * ContentObjectTail for compatibility with other packet formats
@@ -151,7 +151,7 @@
  * @ingroup ndn-exceptions
  * @brief Class for ContentObject parsing exception 
  */
-class ContentObjectHeaderException {};
+class ContentObjectException {};
 
 } // namespace ndn
 } // namespace ns3
diff --git a/model/ndn-interest.cc b/model/ndn-interest.cc
index 362dfe2..fb7e449 100644
--- a/model/ndn-interest.cc
+++ b/model/ndn-interest.cc
@@ -24,26 +24,26 @@
 #include "ns3/unused.h"
 #include "ns3/packet.h"
 
-NS_LOG_COMPONENT_DEFINE ("ndn.InterestHeader");
+NS_LOG_COMPONENT_DEFINE ("ndn.Interest");
 
 namespace ns3 {
 namespace ndn {
 
-NS_OBJECT_ENSURE_REGISTERED (InterestHeader);
+NS_OBJECT_ENSURE_REGISTERED (Interest);
 
 TypeId
-InterestHeader::GetTypeId (void)
+Interest::GetTypeId (void)
 {
-  static TypeId tid = TypeId ("ns3::ndn::InterestHeader")
+  static TypeId tid = TypeId ("ns3::ndn::Interest")
     .SetGroupName ("Ndn")
     .SetParent<Header> ()
-    .AddConstructor<InterestHeader> ()
+    .AddConstructor<Interest> ()
     ;
   return tid;
 }
   
 
-InterestHeader::InterestHeader ()
+Interest::Interest ()
   : m_name ()
   , m_scope (0xFF)
   , m_interestLifetime (Seconds (0))
@@ -52,7 +52,7 @@
 {
 }
 
-InterestHeader::InterestHeader (const InterestHeader &interest)
+Interest::Interest (const Interest &interest)
   : m_name                (Create<Name> (interest.GetName ()))
   , m_scope               (interest.m_scope)
   , m_interestLifetime    (interest.m_interestLifetime)
@@ -61,84 +61,84 @@
 {
 }
 
-Ptr<InterestHeader>
-InterestHeader::GetInterest (Ptr<Packet> packet)
+Ptr<Interest>
+Interest::GetInterest (Ptr<Packet> packet)
 {
-  Ptr<InterestHeader> interest = Create<InterestHeader> ();
+  Ptr<Interest> interest = Create<Interest> ();
   packet->RemoveHeader (*interest);
 
   return interest;
 }
 
 void
-InterestHeader::SetName (Ptr<Name> name)
+Interest::SetName (Ptr<Name> name)
 {
   m_name = name;
 }
 
 const Name&
-InterestHeader::GetName () const
+Interest::GetName () const
 {
-  if (m_name==0) throw InterestHeaderException();
+  if (m_name==0) throw InterestException();
   return *m_name;
 }
 
 Ptr<const Name>
-InterestHeader::GetNamePtr () const
+Interest::GetNamePtr () const
 {
   return m_name;
 }
 
 void
-InterestHeader::SetScope (int8_t scope)
+Interest::SetScope (int8_t scope)
 {
   m_scope = scope;
 }
 
 int8_t
-InterestHeader::GetScope () const
+Interest::GetScope () const
 {
   return m_scope;
 }
 
 void
-InterestHeader::SetInterestLifetime (Time lifetime)
+Interest::SetInterestLifetime (Time lifetime)
 {
   m_interestLifetime = lifetime;
 }
 
 Time
-InterestHeader::GetInterestLifetime () const
+Interest::GetInterestLifetime () const
 {
   return m_interestLifetime;
 }
 
 void
-InterestHeader::SetNonce (uint32_t nonce)
+Interest::SetNonce (uint32_t nonce)
 {
   m_nonce = nonce;
 }
 
 uint32_t
-InterestHeader::GetNonce () const
+Interest::GetNonce () const
 {
   return m_nonce;
 }
 
 void
-InterestHeader::SetNack (uint8_t nackType)
+Interest::SetNack (uint8_t nackType)
 {
   m_nackType = nackType;
 }
 
 uint8_t
-InterestHeader::GetNack () const
+Interest::GetNack () const
 {
   return m_nackType;
 }
 
 uint32_t
-InterestHeader::GetSerializedSize (void) const
+Interest::GetSerializedSize (void) const
 {
   size_t size = 2 + (1 + 4 + 2 + 1 + (m_name->GetSerializedSize ()) + (2 + 0) + (2 + 0));
   NS_LOG_INFO ("Serialize size = " << size);
@@ -147,7 +147,7 @@
 }
     
 void
-InterestHeader::Serialize (Buffer::Iterator start) const
+Interest::Serialize (Buffer::Iterator start) const
 {
   start.WriteU8 (0x80); // version
   start.WriteU8 (0x00); // packet type
@@ -170,15 +170,15 @@
 }
 
 uint32_t
-InterestHeader::Deserialize (Buffer::Iterator start)
+Interest::Deserialize (Buffer::Iterator start)
 {
   Buffer::Iterator i = start;
   
   if (i.ReadU8 () != 0x80)
-    throw new InterestHeaderException ();
+    throw new InterestException ();
 
   if (i.ReadU8 () != 0x00)
-    throw new InterestHeaderException ();
+    throw new InterestException ();
 
   m_nonce = i.ReadU32 ();
   m_scope = i.ReadU8 ();
@@ -199,13 +199,13 @@
 }
 
 TypeId
-InterestHeader::GetInstanceTypeId (void) const
+Interest::GetInstanceTypeId (void) const
 {
   return GetTypeId ();
 }
   
 void
-InterestHeader::Print (std::ostream &os) const
+Interest::Print (std::ostream &os) const
 {
   os << "I: " << GetName ();
   
diff --git a/model/ndn-interest.h b/model/ndn-interest.h
index 1ee3010..7138058 100644
--- a/model/ndn-interest.h
+++ b/model/ndn-interest.h
@@ -40,7 +40,7 @@
 namespace ndn {
 
 /**
-  * @brief NDN InterestHeader and routines to serialize/deserialize
+  * @brief NDN Interest and routines to serialize/deserialize
   *
   * Optimized and simplified formatting of Interest packets 
   *
@@ -256,13 +256,13 @@
   uint8_t  m_nackType;           ///< Negative Acknowledgement type
 };
 
-class InterestHeader : public Interest { };
+typedef Interest InterestHeader;
 
 /**
  * @ingroup ndn-exceptions
  * @brief Class for Interest parsing exception 
  */
-class InterestHeaderException {};
+class InterestException {};
 
 } // namespace ndn
 } // namespace ns3
diff --git a/model/ndn-l3-protocol.cc b/model/ndn-l3-protocol.cc
index 28d337b..4719434 100644
--- a/model/ndn-l3-protocol.cc
+++ b/model/ndn-l3-protocol.cc
@@ -261,7 +261,7 @@
         case HeaderHelper::INTEREST_NDNSIM:
           {
             s_interestCounter ++;
-            Ptr<InterestHeader> header = Create<InterestHeader> ();
+            Ptr<Interest> header = Create<Interest> ();
 
             // Deserialization. Exception may be thrown
             packet->RemoveHeader (*header);
@@ -277,7 +277,7 @@
         case HeaderHelper::CONTENT_OBJECT_NDNSIM:
           {
             s_dataCounter ++;
-            Ptr<ContentObjectHeader> header = Create<ContentObjectHeader> ();
+            Ptr<ContentObject> header = Create<ContentObject> ();
 
             static ContentObjectTail contentObjectTrailer; //there is no data in this object
 
diff --git a/model/ndn-l3-protocol.h b/model/ndn-l3-protocol.h
index 40278d6..36330cb 100644
--- a/model/ndn-l3-protocol.h
+++ b/model/ndn-l3-protocol.h
@@ -39,8 +39,8 @@
 
 class Face;
 class ForwardingStrategy;
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 
 /**
  * \defgroup ndn ndnSIM: NDN simulation module
diff --git a/model/pit/ndn-pit-entry-impl.h b/model/pit/ndn-pit-entry-impl.h
index 025ef54..751402f 100644
--- a/model/pit/ndn-pit-entry-impl.h
+++ b/model/pit/ndn-pit-entry-impl.h
@@ -39,7 +39,7 @@
   
 public:
   EntryImpl (Pit &pit,
-                Ptr<const InterestHeader> header,
+                Ptr<const Interest> header,
                 Ptr<fib::Entry> fibEntry)
   : Entry (pit, header, fibEntry)
   , item_ (0)
diff --git a/model/pit/ndn-pit-entry.cc b/model/pit/ndn-pit-entry.cc
index 6d16048..49a180e 100644
--- a/model/pit/ndn-pit-entry.cc
+++ b/model/pit/ndn-pit-entry.cc
@@ -39,7 +39,7 @@
 namespace pit {
 
 Entry::Entry (Pit &container,
-              Ptr<const InterestHeader> header,
+              Ptr<const Interest> header,
               Ptr<fib::Entry> fibEntry)
   : m_container (container)
   , m_interest (header)
@@ -260,7 +260,7 @@
   return m_maxRetxCount;
 }
 
-Ptr<const InterestHeader>
+Ptr<const Interest>
 Entry::GetInterest () const
 {
   return m_interest;
diff --git a/model/pit/ndn-pit-entry.h b/model/pit/ndn-pit-entry.h
index 694fd9f..3cb5371 100644
--- a/model/pit/ndn-pit-entry.h
+++ b/model/pit/ndn-pit-entry.h
@@ -106,7 +106,7 @@
    * \param offsetTime Relative time to the current moment, representing PIT entry lifetime
    * \param fibEntry A FIB entry associated with the PIT entry
    */
-  Entry (Pit &container, Ptr<const InterestHeader> header, Ptr<fib::Entry> fibEntry);
+  Entry (Pit &container, Ptr<const Interest> header, Ptr<fib::Entry> fibEntry);
 
   /**
    * @brief Virtual destructor
@@ -289,9 +289,9 @@
   RemoveFwTag ();
 
   /**
-   * @brief Get InterestHeader (if several interests are received, then nonce is from the first Interest)
+   * @brief Get Interest (if several interests are received, then nonce is from the first Interest)
    */
-  Ptr<const InterestHeader>
+  Ptr<const Interest>
   GetInterest () const;
 
 private:
@@ -300,7 +300,7 @@
 protected:
   Pit &m_container; ///< @brief Reference to the container (to rearrange indexes, if necessary)
 
-  Ptr<const InterestHeader> m_interest; ///< \brief Interest of the PIT entry (if several interests are received, then nonce is from the first Interest)
+  Ptr<const Interest> m_interest; ///< \brief Interest of the PIT entry (if several interests are received, then nonce is from the first Interest)
   Ptr<fib::Entry> m_fibEntry;     ///< \brief FIB entry related to this prefix
 
   nonce_container m_seenNonces;  ///< \brief map of nonces that were seen for this prefix
diff --git a/model/pit/ndn-pit-impl.cc b/model/pit/ndn-pit-impl.cc
index 27fcab2..3a61c09 100644
--- a/model/pit/ndn-pit-impl.cc
+++ b/model/pit/ndn-pit-impl.cc
@@ -182,7 +182,7 @@
 
 template<class Policy>
 Ptr<Entry>
-PitImpl<Policy>::Lookup (const ContentObjectHeader &header)
+PitImpl<Policy>::Lookup (const ContentObject &header)
 {
   /// @todo use predicate to search with exclude filters
   typename super::iterator item = super::longest_prefix_match_if (header.GetName (), EntryIsNotEmpty ());
@@ -195,7 +195,7 @@
 
 template<class Policy>
 Ptr<Entry>
-PitImpl<Policy>::Lookup (const InterestHeader &header)
+PitImpl<Policy>::Lookup (const Interest &header)
 {
   // NS_LOG_FUNCTION (header.GetName ());
   NS_ASSERT_MSG (m_fib != 0, "FIB should be set");
@@ -213,7 +213,7 @@
 
 template<class Policy>
 Ptr<Entry>
-PitImpl<Policy>::Create (Ptr<const InterestHeader> header)
+PitImpl<Policy>::Create (Ptr<const Interest> header)
 {
   NS_LOG_DEBUG (header->GetName ());
   Ptr<fib::Entry> fibEntry = m_fib->LongestPrefixMatch (*header);
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index bd86838..f3e49f9 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -75,13 +75,13 @@
 
   // inherited from Pit
   virtual Ptr<Entry>
-  Lookup (const ContentObjectHeader &header);
+  Lookup (const ContentObject &header);
 
   virtual Ptr<Entry>
-  Lookup (const InterestHeader &header);
+  Lookup (const Interest &header);
 
   virtual Ptr<Entry>
-  Create (Ptr<const InterestHeader> header);
+  Create (Ptr<const Interest> header);
 
   virtual void
   MarkErased (Ptr<Entry> entry);
diff --git a/model/pit/ndn-pit.h b/model/pit/ndn-pit.h
index f8eeafb..1968bd4 100644
--- a/model/pit/ndn-pit.h
+++ b/model/pit/ndn-pit.h
@@ -32,8 +32,8 @@
 
 class L3Protocol;
 class Face;
-class ContentObjectHeader;
-class InterestHeader;
+class ContentObject;
+class Interest;
 
 ////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////
@@ -74,7 +74,7 @@
    *          returns 0
    */
   virtual Ptr<pit::Entry>
-  Lookup (const ContentObjectHeader &header) = 0;
+  Lookup (const ContentObject &header) = 0;
 
   /**
    * \brief Find a PIT entry for the given content interest
@@ -83,7 +83,7 @@
    *          return end() iterator
    */
   virtual Ptr<pit::Entry>
-  Lookup (const InterestHeader &header) = 0;
+  Lookup (const Interest &header) = 0;
 
   /**
    * @brief Creates a PIT entry for the given interest
@@ -94,7 +94,7 @@
    * Note. This call assumes that the entry does not exist (i.e., there was a Lookup call before)
    */
   virtual Ptr<pit::Entry>
-  Create (Ptr<const InterestHeader> header) = 0;
+  Create (Ptr<const Interest> header) = 0;
   
   /**
    * @brief Mark PIT entry deleted
diff --git a/plugins/tracers-broken/patches/enable-path-stretch-trace.patch b/plugins/tracers-broken/patches/enable-path-stretch-trace.patch
index 396f40b..1be4ef1 100644
--- a/plugins/tracers-broken/patches/enable-path-stretch-trace.patch
+++ b/plugins/tracers-broken/patches/enable-path-stretch-trace.patch
@@ -11,7 +11,7 @@
  
  #include <boost/ref.hpp>
  #include <boost/lexical_cast.hpp>
-@@ -288,14 +288,14 @@ CcnxConsumer::OnContentObject (const Ptr<const CcnxContentObjectHeader> &content
+@@ -288,14 +288,14 @@ CcnxConsumer::OnContentObject (const Ptr<const CcnxContentObject> &content
  
    m_rtt->AckSeq (SequenceNumber32 (seq));
  
diff --git a/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.cc b/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.cc
index 6129e8c..ffda6f8 100644
--- a/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.cc
+++ b/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.cc
@@ -127,7 +127,7 @@
 
 void
 CcnxAggregateAppTracer::OutInterests (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
+                                      Ptr<const CcnxInterest> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   m_outInterests++;
   m_outInterestsBytes += header->GetSerializedSize ();
@@ -135,7 +135,7 @@
 
 void
 CcnxAggregateAppTracer::OutData (std::string context,
-                                 Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                                 Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                                  Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   m_outData++;
@@ -144,7 +144,7 @@
 
 void
 CcnxAggregateAppTracer::InInterests (std::string context,
-                                     Ptr<const CcnxInterestHeader> header,
+                                     Ptr<const CcnxInterest> header,
                                      Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   m_inInterests++;
@@ -153,7 +153,7 @@
 
 void
 CcnxAggregateAppTracer::InNacks (std::string context,
-                                 Ptr<const CcnxInterestHeader> header,
+                                 Ptr<const CcnxInterest> header,
                                  Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   m_inNacks++;
@@ -162,7 +162,7 @@
   
 void
 CcnxAggregateAppTracer::InData (std::string context,
-                                Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                                Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                                 Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   m_inData++;
diff --git a/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.h b/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.h
index e321b64..f5931f9 100644
--- a/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-aggregate-app-tracer.h
@@ -40,23 +40,23 @@
 
   virtual void
   OutInterests (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   InInterests  (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   InNacks (std::string context,
-           Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   OutData (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
   
   virtual void
   InData  (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
 protected:
   void
diff --git a/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.cc b/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.cc
index 596f036..5a98610 100644
--- a/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.cc
+++ b/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.cc
@@ -125,7 +125,7 @@
 
 void
 CcnxAggregateL3Tracer::OutInterests  (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
+                                      Ptr<const CcnxInterest> header, Ptr<const CcnxFace>)
 {
   m_packets.m_outInterests++;
   m_bytes.m_outInterests += header->GetSerializedSize ();
@@ -133,7 +133,7 @@
 
 void
 CcnxAggregateL3Tracer::InInterests   (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
+                                      Ptr<const CcnxInterest> header, Ptr<const CcnxFace>)
 {
   m_packets.m_inInterests++;
   m_bytes.m_inInterests += header->GetSerializedSize ();
@@ -141,7 +141,7 @@
 
 void
 CcnxAggregateL3Tracer::DropInterests (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace>)
+                                      Ptr<const CcnxInterest> header, Ccnx::DropReason, Ptr<const CcnxFace>)
 {
   m_packets.m_dropInterests++;
   m_bytes.m_dropInterests += header->GetSerializedSize ();
@@ -149,7 +149,7 @@
 
 void
 CcnxAggregateL3Tracer::OutNacks  (std::string context,
-                                  Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
+                                  Ptr<const CcnxInterest> header, Ptr<const CcnxFace>)
 {
   m_packets.m_outNacks++;
   m_bytes.m_outNacks += header->GetSerializedSize ();
@@ -157,7 +157,7 @@
 
 void
 CcnxAggregateL3Tracer::InNacks   (std::string context,
-                                  Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace>)
+                                  Ptr<const CcnxInterest> header, Ptr<const CcnxFace>)
 {
   m_packets.m_inNacks++;
   m_bytes.m_inNacks += header->GetSerializedSize ();
@@ -165,7 +165,7 @@
 
 void
 CcnxAggregateL3Tracer::DropNacks (std::string context,
-                                  Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace>)
+                                  Ptr<const CcnxInterest> header, Ccnx::DropReason, Ptr<const CcnxFace>)
 {
   m_packets.m_dropNacks++;
   m_bytes.m_dropNacks += header->GetSerializedSize ();
@@ -173,7 +173,7 @@
 
 void
 CcnxAggregateL3Tracer::OutData  (std::string context,
-                                 Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                                 Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                                  bool fromCache, Ptr<const CcnxFace>)
 {
   m_packets.m_outData++;
@@ -182,7 +182,7 @@
 
 void
 CcnxAggregateL3Tracer::InData   (std::string context,
-                                 Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                                 Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                                  Ptr<const CcnxFace>)
 {
   m_packets.m_inData++;
@@ -191,7 +191,7 @@
 
 void
 CcnxAggregateL3Tracer::DropData (std::string context,
-                                 Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                                 Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                                  Ccnx::DropReason, Ptr<const CcnxFace>)
 {
   m_packets.m_dropData++;
diff --git a/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.h b/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.h
index 8536258..f9ae117 100644
--- a/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-aggregate-l3-tracer.h
@@ -40,39 +40,39 @@
 
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>);
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>);
   
   virtual void
   OutData  (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
 
   virtual void
   InData   (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<const CcnxFace>);
 
   virtual void
   DropData (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
 
 protected:
   void
diff --git a/plugins/tracers-broken/tracers/ccnx-app-tracer.h b/plugins/tracers-broken/tracers/ccnx-app-tracer.h
index fd9f42d..f642c1b 100644
--- a/plugins/tracers-broken/tracers/ccnx-app-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-app-tracer.h
@@ -47,23 +47,23 @@
 
   virtual void
   OutInterests (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
 
   virtual void
   InInterests  (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
 
   virtual void
   InNacks (std::string context,
-           Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
+           Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
 
   virtual void
   OutData (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
   
   virtual void
   InData  (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
 
 protected:
   std::string m_app;
diff --git a/plugins/tracers-broken/tracers/ccnx-l3-tracer.h b/plugins/tracers-broken/tracers/ccnx-l3-tracer.h
index ac21cef..967c006 100644
--- a/plugins/tracers-broken/tracers/ccnx-l3-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-l3-tracer.h
@@ -47,40 +47,40 @@
   
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>) = 0;
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>) = 0;
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
+                 Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>) = 0;
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>) = 0;
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
+             Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
 
   
   virtual void
   OutData  (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>) = 0;
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>) = 0;
 
   virtual void
   InData   (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>) = 0;
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<const CcnxFace>) = 0;
 
   virtual void
   DropData (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
 
 protected:
   std::string m_node;
diff --git a/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.cc b/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.cc
index d44ce44..80ac391 100644
--- a/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.cc
+++ b/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.cc
@@ -137,7 +137,7 @@
 
 void
 CcnxRateL3Tracer::OutInterests  (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
+                                      Ptr<const CcnxInterest> header, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_outInterests ++;
   m_stats[face].get<1> ().m_outInterests += header->GetSerializedSize ();
@@ -145,7 +145,7 @@
 
 void
 CcnxRateL3Tracer::InInterests   (std::string context,
-                                 Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
+                                 Ptr<const CcnxInterest> header, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_inInterests ++;
   m_stats[face].get<1> ().m_inInterests += header->GetSerializedSize ();
@@ -153,7 +153,7 @@
 
 void
 CcnxRateL3Tracer::DropInterests (std::string context,
-                                      Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
+                                      Ptr<const CcnxInterest> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_dropInterests ++;
   m_stats[face].get<1> ().m_dropInterests += header->GetSerializedSize ();
@@ -161,7 +161,7 @@
 
 void
 CcnxRateL3Tracer::OutNacks  (std::string context,
-                                  Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
+                                  Ptr<const CcnxInterest> header, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_outNacks ++;
   m_stats[face].get<1> ().m_outNacks += header->GetSerializedSize ();
@@ -169,7 +169,7 @@
 
 void
 CcnxRateL3Tracer::InNacks   (std::string context,
-                                  Ptr<const CcnxInterestHeader> header, Ptr<const CcnxFace> face)
+                                  Ptr<const CcnxInterest> header, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_inNacks ++;
   m_stats[face].get<1> ().m_inNacks += header->GetSerializedSize ();
@@ -177,7 +177,7 @@
 
 void
 CcnxRateL3Tracer::DropNacks (std::string context,
-                             Ptr<const CcnxInterestHeader> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
+                             Ptr<const CcnxInterest> header, Ccnx::DropReason, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_dropNacks ++;
   m_stats[face].get<1> ().m_dropNacks += header->GetSerializedSize ();
@@ -185,7 +185,7 @@
 
 void
 CcnxRateL3Tracer::OutData  (std::string context,
-                            Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                            Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                             bool fromCache, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_inData ++;
@@ -194,7 +194,7 @@
 
 void
 CcnxRateL3Tracer::InData   (std::string context,
-                            Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                            Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                             Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_outData ++;
@@ -203,7 +203,7 @@
 
 void
 CcnxRateL3Tracer::DropData (std::string context,
-                            Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> payload,
+                            Ptr<const CcnxContentObject> header, Ptr<const Packet> payload,
                             Ccnx::DropReason, Ptr<const CcnxFace> face)
 {
   m_stats[face].get<0> ().m_dropData ++;
diff --git a/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.h b/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.h
index 83e48c4..d19a86d 100644
--- a/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-rate-l3-tracer.h
@@ -56,39 +56,39 @@
 
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
+                 Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>);
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ptr<const CcnxFace>);
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
+             Ptr<const CcnxInterest>, Ccnx::DropReason, Ptr<const CcnxFace>);
   
   virtual void
   OutData  (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
 
   virtual void
   InData   (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<const CcnxFace>);
 
   virtual void
   DropData (std::string context,
-            Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
+            Ptr<const CcnxContentObject>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
 
 private:
   void
diff --git a/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.cc b/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.cc
index 5ea636e..b8229b2 100644
--- a/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.cc
+++ b/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.cc
@@ -76,14 +76,14 @@
 
 void
 CcnxSeqsAppTracer::OutInterests (std::string context,
-                                 Ptr<const CcnxInterestHeader> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
+                                 Ptr<const CcnxInterest> header, Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   PRINTER ("OutInterest");
 }
 
 void
 CcnxSeqsAppTracer::OutData (std::string context,
-                            Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet>,
+                            Ptr<const CcnxContentObject> header, Ptr<const Packet>,
                             Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   PRINTER ("OutData");
@@ -91,7 +91,7 @@
 
 void
 CcnxSeqsAppTracer::InInterests (std::string context,
-                                Ptr<const CcnxInterestHeader> header,
+                                Ptr<const CcnxInterest> header,
                                 Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   PRINTER ("InInterest");
@@ -99,7 +99,7 @@
 
 void
 CcnxSeqsAppTracer::InNacks (std::string context,
-                            Ptr<const CcnxInterestHeader> header,
+                            Ptr<const CcnxInterest> header,
                             Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   PRINTER ("InNacks");
@@ -107,7 +107,7 @@
   
 void
 CcnxSeqsAppTracer::InData (std::string context,
-                           Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet>,
+                           Ptr<const CcnxContentObject> header, Ptr<const Packet>,
                            Ptr<CcnxApp>, Ptr<CcnxFace>)
 {
   PRINTER ("InData");
diff --git a/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.h b/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.h
index b0fd618..59d992f 100644
--- a/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.h
+++ b/plugins/tracers-broken/tracers/ccnx-seqs-app-tracer.h
@@ -40,23 +40,23 @@
 
   virtual void
   OutInterests (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   InInterests  (std::string context,
-                Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+                Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   InNacks (std::string context,
-           Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxInterest>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
   virtual void
   OutData (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
   
   virtual void
   InData  (std::string context,
-           Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
+           Ptr<const CcnxContentObject>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
 
 protected:
   void
diff --git a/test/ndnSIM-fib-entry.cc b/test/ndnSIM-fib-entry.cc
index 4d563c7..05d0e01 100644
--- a/test/ndnSIM-fib-entry.cc
+++ b/test/ndnSIM-fib-entry.cc
@@ -63,7 +63,7 @@
   SendPacket (const std::string &prefix, uint32_t nonce)
   {
     Ptr<Packet> pkt = Create<Packet> (0);
-    ndn::InterestHeader i;
+    ndn::Interest i;
     i.SetName (Create<ndn::Name> (prefix));
     i.SetNonce (nonce);
     i.SetInterestLifetime (Seconds (0.5));
diff --git a/test/ndnSIM-pit.cc b/test/ndnSIM-pit.cc
index c1ba4c1..9eb9cbf 100644
--- a/test/ndnSIM-pit.cc
+++ b/test/ndnSIM-pit.cc
@@ -59,7 +59,7 @@
   SendPacket (const std::string &prefix, uint32_t nonce)
   {
     Ptr<Packet> pkt = Create<Packet> (0);
-    ndn::InterestHeader i;
+    ndn::Interest i;
     i.SetName (Create<ndn::Name> (prefix));
     i.SetNonce (nonce);
     i.SetInterestLifetime (Seconds (0.5));
diff --git a/test/ndnSIM-serialization.cc b/test/ndnSIM-serialization.cc
index 16ddb51..2d42d93 100644
--- a/test/ndnSIM-serialization.cc
+++ b/test/ndnSIM-serialization.cc
@@ -36,7 +36,7 @@
 void
 InterestSerializationTest::DoRun ()
 {
-  InterestHeader source;
+  Interest source;
   
   source.SetName (Create<Name> (boost::lexical_cast<Name> ("/test/test2")));
   NS_TEST_ASSERT_MSG_EQ (source.GetName (), boost::lexical_cast<Name> ("/test/test2"), "set/get name failed");
@@ -58,7 +58,7 @@
   packet.AddHeader (source);
 	
   //deserialization
-  InterestHeader target;
+  Interest target;
   packet.RemoveHeader (target);
   
   NS_TEST_ASSERT_MSG_EQ (source.GetName ()            , target.GetName ()            , "source/target name failed");
@@ -71,7 +71,7 @@
 void
 ContentObjectSerializationTest::DoRun ()
 {
-  ContentObjectHeader source;
+  ContentObject source;
   
   source.SetName (Create<Name> (boost::lexical_cast<Name> ("/test/test2/1")));
   NS_TEST_ASSERT_MSG_EQ (source.GetName (), boost::lexical_cast<Name> ("/test/test2/1"), "set/get name failed");
@@ -87,7 +87,7 @@
   packet.AddHeader (source);
 	
   //deserialization
-  ContentObjectHeader target;
+  ContentObject target;
   packet.RemoveHeader (target);
   
   NS_TEST_ASSERT_MSG_EQ (source.GetName ()     , target.GetName ()     , "source/target name failed");
diff --git a/utils/tracers/ndn-cs-tracer.cc b/utils/tracers/ndn-cs-tracer.cc
index 2200665..80afe64 100644
--- a/utils/tracers/ndn-cs-tracer.cc
+++ b/utils/tracers/ndn-cs-tracer.cc
@@ -173,13 +173,13 @@
 }
 
 void 
-CsTracer::CacheHits (Ptr<const InterestHeader>, Ptr<const ContentObjectHeader>)
+CsTracer::CacheHits (Ptr<const Interest>, Ptr<const ContentObject>)
 {
   m_stats.m_cacheHits ++;
 }
 
 void 
-CsTracer::CacheMisses (Ptr<const InterestHeader>)
+CsTracer::CacheMisses (Ptr<const Interest>)
 {
   m_stats.m_cacheMisses ++;
 }
diff --git a/utils/tracers/ndn-cs-tracer.h b/utils/tracers/ndn-cs-tracer.h
index b52de9c..ff5fc89 100644
--- a/utils/tracers/ndn-cs-tracer.h
+++ b/utils/tracers/ndn-cs-tracer.h
@@ -39,8 +39,8 @@
 
 namespace ndn {
 
-class InterestHeader;
-class ContentObjectHeader;
+class Interest;
+class ContentObject;
 
 namespace cs {
 
@@ -117,10 +117,10 @@
   Connect ();
 
   void 
-  CacheHits (Ptr<const InterestHeader>, Ptr<const ContentObjectHeader>);
+  CacheHits (Ptr<const Interest>, Ptr<const ContentObject>);
   
   void 
-  CacheMisses (Ptr<const InterestHeader>);
+  CacheMisses (Ptr<const Interest>);
 
 private:
   void
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.cc b/utils/tracers/ndn-l3-aggregate-tracer.cc
index 35b85ec..2152b1d 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.cc
+++ b/utils/tracers/ndn-l3-aggregate-tracer.cc
@@ -174,7 +174,7 @@
 
 void
 L3AggregateTracer::OutInterests  (std::string context,
-                                  Ptr<const InterestHeader> header, Ptr<const Face> face)
+                                  Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outInterests ++;
   m_stats[face].get<1> ().m_outInterests += header->GetSerializedSize ();
@@ -182,7 +182,7 @@
 
 void
 L3AggregateTracer::InInterests   (std::string context,
-                                  Ptr<const InterestHeader> header, Ptr<const Face> face)
+                                  Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inInterests ++;
   m_stats[face].get<1> ().m_inInterests += header->GetSerializedSize ();
@@ -190,7 +190,7 @@
 
 void
 L3AggregateTracer::DropInterests (std::string context,
-                                  Ptr<const InterestHeader> header, Ptr<const Face> face)
+                                  Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropInterests ++;
   m_stats[face].get<1> ().m_dropInterests += header->GetSerializedSize ();
@@ -198,7 +198,7 @@
 
 void
 L3AggregateTracer::OutNacks  (std::string context,
-                              Ptr<const InterestHeader> header, Ptr<const Face> face)
+                              Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outNacks ++;
   m_stats[face].get<1> ().m_outNacks += header->GetSerializedSize ();
@@ -206,7 +206,7 @@
 
 void
 L3AggregateTracer::InNacks   (std::string context,
-                              Ptr<const InterestHeader> header, Ptr<const Face> face)
+                              Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inNacks ++;
   m_stats[face].get<1> ().m_inNacks += header->GetSerializedSize ();
@@ -214,7 +214,7 @@
 
 void
 L3AggregateTracer::DropNacks (std::string context,
-                              Ptr<const InterestHeader> header, Ptr<const Face> face)
+                              Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropNacks ++;
   m_stats[face].get<1> ().m_dropNacks += header->GetSerializedSize ();
@@ -222,7 +222,7 @@
 
 void
 L3AggregateTracer::OutData  (std::string context,
-                             Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                             Ptr<const ContentObject> header, Ptr<const Packet> payload,
                              bool fromCache, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outData ++;
@@ -231,7 +231,7 @@
 
 void
 L3AggregateTracer::InData   (std::string context,
-                             Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                             Ptr<const ContentObject> header, Ptr<const Packet> payload,
                              Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inData ++;
@@ -240,7 +240,7 @@
 
 void
 L3AggregateTracer::DropData (std::string context,
-                             Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                             Ptr<const ContentObject> header, Ptr<const Packet> payload,
                              Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropData ++;
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.h b/utils/tracers/ndn-l3-aggregate-tracer.h
index a04df67..c3f437b 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.h
+++ b/utils/tracers/ndn-l3-aggregate-tracer.h
@@ -83,39 +83,39 @@
 
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
   
   virtual void
   OutData  (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const Face>);
 
   virtual void
   InData   (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>);
 
   virtual void
   DropData (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>);
 
 protected:
   void
diff --git a/utils/tracers/ndn-l3-rate-tracer.cc b/utils/tracers/ndn-l3-rate-tracer.cc
index f588503..df76a22 100644
--- a/utils/tracers/ndn-l3-rate-tracer.cc
+++ b/utils/tracers/ndn-l3-rate-tracer.cc
@@ -185,7 +185,7 @@
 
 void
 L3RateTracer::OutInterests  (std::string context,
-                             Ptr<const InterestHeader> header, Ptr<const Face> face)
+                             Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outInterests ++;
   m_stats[face].get<1> ().m_outInterests += header->GetSerializedSize ();
@@ -193,7 +193,7 @@
 
 void
 L3RateTracer::InInterests   (std::string context,
-                             Ptr<const InterestHeader> header, Ptr<const Face> face)
+                             Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inInterests ++;
   m_stats[face].get<1> ().m_inInterests += header->GetSerializedSize ();
@@ -201,7 +201,7 @@
 
 void
 L3RateTracer::DropInterests (std::string context,
-                             Ptr<const InterestHeader> header, Ptr<const Face> face)
+                             Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropInterests ++;
   m_stats[face].get<1> ().m_dropInterests += header->GetSerializedSize ();
@@ -209,7 +209,7 @@
 
 void
 L3RateTracer::OutNacks  (std::string context,
-                         Ptr<const InterestHeader> header, Ptr<const Face> face)
+                         Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outNacks ++;
   m_stats[face].get<1> ().m_outNacks += header->GetSerializedSize ();
@@ -217,7 +217,7 @@
 
 void
 L3RateTracer::InNacks   (std::string context,
-                         Ptr<const InterestHeader> header, Ptr<const Face> face)
+                         Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inNacks ++;
   m_stats[face].get<1> ().m_inNacks += header->GetSerializedSize ();
@@ -225,7 +225,7 @@
 
 void
 L3RateTracer::DropNacks (std::string context,
-                         Ptr<const InterestHeader> header, Ptr<const Face> face)
+                         Ptr<const Interest> header, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropNacks ++;
   m_stats[face].get<1> ().m_dropNacks += header->GetSerializedSize ();
@@ -233,7 +233,7 @@
 
 void
 L3RateTracer::OutData  (std::string context,
-                        Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                        Ptr<const ContentObject> header, Ptr<const Packet> payload,
                         bool fromCache, Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_outData ++;
@@ -242,7 +242,7 @@
 
 void
 L3RateTracer::InData   (std::string context,
-                        Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                        Ptr<const ContentObject> header, Ptr<const Packet> payload,
                         Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_inData ++;
@@ -251,7 +251,7 @@
 
 void
 L3RateTracer::DropData (std::string context,
-                        Ptr<const ContentObjectHeader> header, Ptr<const Packet> payload,
+                        Ptr<const ContentObject> header, Ptr<const Packet> payload,
                         Ptr<const Face> face)
 {
   m_stats[face].get<0> ().m_dropData ++;
diff --git a/utils/tracers/ndn-l3-rate-tracer.h b/utils/tracers/ndn-l3-rate-tracer.h
index 791d953..b1c52a0 100644
--- a/utils/tracers/ndn-l3-rate-tracer.h
+++ b/utils/tracers/ndn-l3-rate-tracer.h
@@ -85,39 +85,39 @@
   // from L3Tracer
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>);
+                 Ptr<const Interest>, Ptr<const Face>);
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>);
+             Ptr<const Interest>, Ptr<const Face>);
   
   virtual void
   OutData  (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const Face>);
 
   virtual void
   InData   (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>);
 
   virtual void
   DropData (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>);
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>);
 
 private:
   void
diff --git a/utils/tracers/ndn-l3-tracer.h b/utils/tracers/ndn-l3-tracer.h
index 625f9e1..13c2630 100644
--- a/utils/tracers/ndn-l3-tracer.h
+++ b/utils/tracers/ndn-l3-tracer.h
@@ -31,9 +31,9 @@
 
 namespace ndn {
 
-class InterestHeader;
+class Interest;
 class Face;
-class ContentObjectHeader;
+class ContentObject;
 
 /**
  * @brief Base class for network-layer (incoming/outgoing Interests and Data) tracing of NDN stack
@@ -80,40 +80,40 @@
   
   virtual void
   OutInterests  (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+                 Ptr<const Interest>, Ptr<const Face>) = 0;
 
   virtual void
   InInterests   (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+                 Ptr<const Interest>, Ptr<const Face>) = 0;
 
   virtual void
   DropInterests (std::string context,
-                 Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+                 Ptr<const Interest>, Ptr<const Face>) = 0;
   
   virtual void
   OutNacks  (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+             Ptr<const Interest>, Ptr<const Face>) = 0;
 
   virtual void
   InNacks   (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+             Ptr<const Interest>, Ptr<const Face>) = 0;
 
   virtual void
   DropNacks (std::string context,
-             Ptr<const InterestHeader>, Ptr<const Face>) = 0;
+             Ptr<const Interest>, Ptr<const Face>) = 0;
 
   
   virtual void
   OutData  (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const Face>) = 0;
+            Ptr<const ContentObject>, Ptr<const Packet>, bool fromCache, Ptr<const Face>) = 0;
 
   virtual void
   InData   (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>) = 0;
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>) = 0;
 
   virtual void
   DropData (std::string context,
-            Ptr<const ContentObjectHeader>, Ptr<const Packet>, Ptr<const Face>) = 0;
+            Ptr<const ContentObject>, Ptr<const Packet>, Ptr<const Face>) = 0;
 
 protected:
   std::string m_node;