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.
