diff --git a/examples/custom-apps/custom-app.cc b/examples/custom-apps/custom-app.cc
index 4e83095..bc2fb2e 100644
--- a/examples/custom-apps/custom-app.cc
+++ b/examples/custom-apps/custom-app.cc
@@ -116,27 +116,27 @@
   
   NS_LOG_DEBUG ("Received Interest packet for " << interest->GetName ());
 
-  // Create and configure ndn::ContentObject and ndn::ContentObjectTail
+  // Create and configure ndn::Data and ndn::DataTail
   // (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 !
   
-  Ptr<ndn::ContentObject> data = Create<ndn::ContentObject> (Create<Packet> (1024));
+  Ptr<ndn::Data> data = Create<ndn::Data> (Create<Packet> (1024));
   data->SetName (Create<ndn::Name> (interest->GetName ())); // data will have the same name as Interests
 
-  NS_LOG_DEBUG ("Sending ContentObject packet for " << data->GetName ());  
+  NS_LOG_DEBUG ("Sending Data packet for " << data->GetName ());  
 
   // Call trace (for logging purposes)
-  m_transmittedContentObjects (data, this, m_face);
+  m_transmittedDatas (data, this, m_face);
 
   m_face->ReceiveData (data); 
 }
 
 // Callback that will be called when Data arrives
 void
-CustomApp::OnContentObject (Ptr<const ndn::ContentObject> contentObject)
+CustomApp::OnData (Ptr<const ndn::Data> contentObject)
 {
-  NS_LOG_DEBUG ("Receiving ContentObject packet for " << contentObject->GetName ());
+  NS_LOG_DEBUG ("Receiving Data packet for " << contentObject->GetName ());
 
   std::cout << "DATA received for name " << contentObject->GetName () << std::endl;
 }
diff --git a/examples/custom-apps/custom-app.h b/examples/custom-apps/custom-app.h
index ed21a2c..d1f85f7 100644
--- a/examples/custom-apps/custom-app.h
+++ b/examples/custom-apps/custom-app.h
@@ -30,12 +30,12 @@
 /**
  * @brief A simple custom application
  *
- * This applications demonstrates how to send Interests and respond with ContentObjects to incoming interests
+ * This applications demonstrates how to send Interests and respond with Datas to incoming interests
  *
  * When application starts it "sets interest filter" (install FIB entry) for /prefix/sub, as well as
  * sends Interest for this prefix
  *
- * When an Interest is received, it is replied with a ContentObject with 1024-byte fake payload
+ * When an Interest is received, it is replied with a Data with 1024-byte fake payload
  */
 class CustomApp : public ndn::App
 {
@@ -58,7 +58,7 @@
 
   // (overridden from ndn::App) Callback that will be called when Data arrives
   virtual void
-  OnContentObject (Ptr<const ndn::ContentObject> contentObject);
+  OnData (Ptr<const ndn::Data> contentObject);
 
 private:
   void
diff --git a/examples/custom-apps/dumb-requester.cc b/examples/custom-apps/dumb-requester.cc
index b1a0592..574eb7c 100644
--- a/examples/custom-apps/dumb-requester.cc
+++ b/examples/custom-apps/dumb-requester.cc
@@ -110,9 +110,9 @@
 }
 
 void
-DumbRequester::OnContentObject (Ptr<const ndn::ContentObject> contentObject)
+DumbRequester::OnData (Ptr<const ndn::Data> contentObject)
 {
-  NS_LOG_DEBUG ("Receiving ContentObject packet for " << contentObject->GetName ());
+  NS_LOG_DEBUG ("Receiving Data packet for " << contentObject->GetName ());
 }
 
 
diff --git a/examples/custom-apps/dumb-requester.h b/examples/custom-apps/dumb-requester.h
index c2340e0..7b728c7 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 (Ptr<const ndn::ContentObject> contentObject);
+  OnData (Ptr<const ndn::Data> contentObject);
   
 private:
   void
diff --git a/examples/custom-apps/ndn-api-app.cc b/examples/custom-apps/ndn-api-app.cc
index db55bb6..bb7a9b6 100644
--- a/examples/custom-apps/ndn-api-app.cc
+++ b/examples/custom-apps/ndn-api-app.cc
@@ -72,7 +72,7 @@
 }
 
 void
-ApiApp::GotData (Ptr<const Interest> origInterest, Ptr<const ContentObject> data)
+ApiApp::GotData (Ptr<const Interest> origInterest, Ptr<const Data> data)
 {
   NS_LOG_FUNCTION (this << origInterest->GetName () << data->GetName ());
   // do nothing else
diff --git a/examples/custom-apps/ndn-api-app.h b/examples/custom-apps/ndn-api-app.h
index 7709b80..8345a99 100644
--- a/examples/custom-apps/ndn-api-app.h
+++ b/examples/custom-apps/ndn-api-app.h
@@ -43,7 +43,7 @@
   RequestData ();
 
   void
-  GotData (Ptr<const Interest> origInterest, Ptr<const ContentObject> data);
+  GotData (Ptr<const Interest> origInterest, Ptr<const Data> data);
   
 protected:
   // inherited from Application base class.
diff --git a/examples/ndn-simple-with-content-freshness.cc b/examples/ndn-simple-with-content-freshness.cc
index cefb232..23db4cb 100644
--- a/examples/ndn-simple-with-content-freshness.cc
+++ b/examples/ndn-simple-with-content-freshness.cc
@@ -33,7 +33,7 @@
  *      | consumer | <------------> | router | <------------> | producer |
  *      +----------+         10ms   +--------+          10ms  +----------+
  *
- * This scenario demonstrates how to use content store that responds to Freshness parameter set in ContentObjects.
+ * This scenario demonstrates how to use content store that responds to Freshness parameter set in Datas.
  * That is, if producer set Freshness field to 2 seconds, the corresponding content object will not be cached
  * more than 2 seconds (can be cached for a shorter time, if entry is evicted earlier)
  * 
diff --git a/examples/ndn-simple-with-cs-lfu.cc b/examples/ndn-simple-with-cs-lfu.cc
index c184863..0ed9079 100644
--- a/examples/ndn-simple-with-cs-lfu.cc
+++ b/examples/ndn-simple-with-cs-lfu.cc
@@ -36,7 +36,7 @@
  *      | consumer | <------------> | router | <------------> | producer |
  *      +----------+         10ms   +--------+          10ms  +----------+
  *
- * This scenario demonstrates how to use content store that responds to Freshness parameter set in ContentObjects.
+ * This scenario demonstrates how to use content store that responds to Freshness parameter set in Datas.
  * That is, if producer set Freshness field to 2 seconds, the corresponding content object will not be cached
  * more than 2 seconds (can be cached for a shorter time, if entry is evicted earlier)
  *
diff --git a/examples/ndn-simple-with-different-sizes-content-store.cc b/examples/ndn-simple-with-different-sizes-content-store.cc
index b25d452..d6da309 100644
--- a/examples/ndn-simple-with-different-sizes-content-store.cc
+++ b/examples/ndn-simple-with-different-sizes-content-store.cc
@@ -33,7 +33,7 @@
  *      | consumer | <------------> | router | <------------> | producer |
  *      +----------+         10ms   +--------+          10ms  +----------+
  *
- * This scenario demonstrates how to use content store that responds to Freshness parameter set in ContentObjects.
+ * This scenario demonstrates how to use content store that responds to Freshness parameter set in Datas.
  * That is, if producer set Freshness field to 2 seconds, the corresponding content object will not be cached
  * more than 2 seconds (can be cached for a shorter time, if entry is evicted earlier)
  *
