diff --git a/apps/ndn-app.cc b/apps/ndn-app.cc
index ec4377e..4a32734 100644
--- a/apps/ndn-app.cc
+++ b/apps/ndn-app.cc
@@ -24,7 +24,7 @@
 #include "ns3/packet.h"
 
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-l3-protocol.h"
 #include "ns3/ndn-fib.h"
 #include "ns3/ndn-app-face.h"
diff --git a/apps/ndn-consumer-cbr.cc b/apps/ndn-consumer-cbr.cc
index 77fe130..b0b5137 100644
--- a/apps/ndn-consumer-cbr.cc
+++ b/apps/ndn-consumer-cbr.cc
@@ -32,7 +32,7 @@
 
 #include "ns3/ndn-app-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NS_LOG_COMPONENT_DEFINE ("ndn.ConsumerCbr");
 
diff --git a/apps/ndn-consumer-window.cc b/apps/ndn-consumer-window.cc
index 2a87ef6..7de4784 100644
--- a/apps/ndn-consumer-window.cc
+++ b/apps/ndn-consumer-window.cc
@@ -27,7 +27,7 @@
 #include "ns3/string.h"
 #include "ns3/uinteger.h"
 #include "ns3/double.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-interest.h"
 
 NS_LOG_COMPONENT_DEFINE ("ndn.ConsumerWindow");
diff --git a/apps/ndn-consumer-zipf-mandelbrot.cc b/apps/ndn-consumer-zipf-mandelbrot.cc
index 3f863f5..ba5a828 100644
--- a/apps/ndn-consumer-zipf-mandelbrot.cc
+++ b/apps/ndn-consumer-zipf-mandelbrot.cc
@@ -22,7 +22,7 @@
 
 #include "ns3/ndn-app-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "ns3/ndnSIM/utils/ndn-fw-hop-count-tag.h"
 
diff --git a/apps/ndn-consumer.cc b/apps/ndn-consumer.cc
index d6eb389..188c531 100644
--- a/apps/ndn-consumer.cc
+++ b/apps/ndn-consumer.cc
@@ -32,7 +32,7 @@
 
 #include "ns3/ndn-app-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndnSIM/utils/ndn-fw-hop-count-tag.h"
 #include "ns3/ndnSIM/utils/ndn-rtt-mean-deviation.h"
 
diff --git a/apps/ndn-producer.cc b/apps/ndn-producer.cc
index e8bf98c..8d1f052 100644
--- a/apps/ndn-producer.cc
+++ b/apps/ndn-producer.cc
@@ -22,7 +22,7 @@
 #include "ndn-producer.h"
 #include "ns3/log.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/string.h"
 #include "ns3/uinteger.h"
 #include "ns3/packet.h"
diff --git a/apps/ndn-producer.h b/apps/ndn-producer.h
index 1cf21fe..d705a2a 100644
--- a/apps/ndn-producer.h
+++ b/apps/ndn-producer.h
@@ -26,7 +26,7 @@
 
 #include "ns3/ptr.h"
 #include "ns3/ndn-name.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 namespace ns3 {
 namespace ndn {
diff --git a/examples/custom-apps/custom-app.cc b/examples/custom-apps/custom-app.cc
index bc2fb2e..68f65e2 100644
--- a/examples/custom-apps/custom-app.cc
+++ b/examples/custom-apps/custom-app.cc
@@ -28,7 +28,7 @@
 
 #include "ns3/ndn-app-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "ns3/ndn-fib.h"
 #include "ns3/random-variable.h"
diff --git a/examples/custom-apps/dumb-requester.cc b/examples/custom-apps/dumb-requester.cc
index 574eb7c..0c4c9f4 100644
--- a/examples/custom-apps/dumb-requester.cc
+++ b/examples/custom-apps/dumb-requester.cc
@@ -30,7 +30,7 @@
 
 #include "ns3/ndn-app-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NS_LOG_COMPONENT_DEFINE ("DumbRequester");
 
diff --git a/helper/ndn-header-helper.cc b/helper/ndn-header-helper.cc
index 97d282a..edb5af8 100644
--- a/helper/ndn-header-helper.cc
+++ b/helper/ndn-header-helper.cc
@@ -26,7 +26,7 @@
 #include "ns3/object.h"
 
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include <iomanip>
 
 NS_LOG_COMPONENT_DEFINE ("ndn.HeaderHelper");
diff --git a/model/cs/content-store-impl.h b/model/cs/content-store-impl.h
index 48786d7..9ae7e2e 100644
--- a/model/cs/content-store-impl.h
+++ b/model/cs/content-store-impl.h
@@ -24,7 +24,7 @@
 #include "ndn-content-store.h"
 #include "ns3/packet.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include <boost/foreach.hpp>
 
 #include "ns3/log.h"
diff --git a/model/cs/content-store-nocache.cc b/model/cs/content-store-nocache.cc
index b2b8fbf..001dc58 100644
--- a/model/cs/content-store-nocache.cc
+++ b/model/cs/content-store-nocache.cc
@@ -25,7 +25,7 @@
 #include "ns3/packet.h"
 #include "ns3/ndn-name.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NS_LOG_COMPONENT_DEFINE ("ndn.cs.Nocache");
 
diff --git a/model/cs/ndn-content-store.cc b/model/cs/ndn-content-store.cc
index 38215dc..ecc9de8 100644
--- a/model/cs/ndn-content-store.cc
+++ b/model/cs/ndn-content-store.cc
@@ -25,7 +25,7 @@
 #include "ns3/packet.h"
 #include "ns3/ndn-name.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NS_LOG_COMPONENT_DEFINE ("ndn.cs.ContentStore");
 
diff --git a/model/fw/green-yellow-red.cc b/model/fw/green-yellow-red.cc
index cb7fd89..a2d4e3c 100644
--- a/model/fw/green-yellow-red.cc
+++ b/model/fw/green-yellow-red.cc
@@ -24,7 +24,7 @@
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-pit-entry.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-fib.h"
 #include "ns3/ndn-content-store.h"
diff --git a/model/fw/nacks.cc b/model/fw/nacks.cc
index e57d66e..b035514 100644
--- a/model/fw/nacks.cc
+++ b/model/fw/nacks.cc
@@ -23,7 +23,7 @@
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-pit-entry.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-fib.h"
 #include "ns3/ndn-content-store.h"
diff --git a/model/fw/ndn-forwarding-strategy.cc b/model/fw/ndn-forwarding-strategy.cc
index f439fd4..392d208 100644
--- a/model/fw/ndn-forwarding-strategy.cc
+++ b/model/fw/ndn-forwarding-strategy.cc
@@ -24,7 +24,7 @@
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-pit-entry.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-fib.h"
 #include "ns3/ndn-content-store.h"
diff --git a/model/fw/per-fib-limits.cc b/model/fw/per-fib-limits.cc
index f2fed86..87e99fc 100644
--- a/model/fw/per-fib-limits.cc
+++ b/model/fw/per-fib-limits.cc
@@ -23,7 +23,7 @@
 
 #include "ns3/ndn-l3-protocol.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "best-route.h"
 #include "flooding.h"
diff --git a/model/fw/per-out-face-limits.cc b/model/fw/per-out-face-limits.cc
index 41ca598..d07f79b 100644
--- a/model/fw/per-out-face-limits.cc
+++ b/model/fw/per-out-face-limits.cc
@@ -22,7 +22,7 @@
 
 #include "ns3/ndn-l3-protocol.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "best-route.h"
 #include "flooding.h"
diff --git a/model/ndn-app-face.cc b/model/ndn-app-face.cc
index 4e5f56e..1de26e3 100644
--- a/model/ndn-app-face.cc
+++ b/model/ndn-app-face.cc
@@ -32,7 +32,7 @@
 #include "ns3/ndn-app.h"
 
 #include "ndn-interest.h"
-#include "ndn-content-object.h"
+#include "ndn-data.h"
 
 NS_LOG_COMPONENT_DEFINE ("ndn.AppFace");
 
diff --git a/model/ndn-content-object.h b/model/ndn-content-object.h
index 4d51d37..e69de29 100644
--- a/model/ndn-content-object.h
+++ b/model/ndn-content-object.h
@@ -1,221 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011-2013 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- *         Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef _NDN_CONTENT_OBJECT_HEADER_H_
-#define _NDN_CONTENT_OBJECT_HEADER_H_
-
-#include "ns3/simple-ref-count.h"
-#include "ns3/nstime.h"
-#include "ns3/packet.h"
-#include "ns3/ptr.h"
-
-#include <ns3/ndn-name.h>
-
-namespace ns3 {
-namespace ndn {
-
-/**
- * @ingroup ndn
- * @brief Data header
- */
-class Data : public SimpleRefCount<Data>
-{
-public:
-  /**
-   * @brief Constructor
-   *
-   * Creates a null header
-   **/
-  Data (Ptr<Packet> payload = Create<Packet> ());
-
-  /**
-   * @brief Copy constructor
-   */
-  Data (const Data &other);
-
-  /**
-   * \brief Set content object name
-   *
-   * Sets name of the content object
-   **/
-  void
-  SetName (Ptr<Name> name);
-
-  /**
-   * @brief Another, less efficient, variant of setting content object name
-   *
-   * Sets name of the content object
-   */
-  void
-  SetName (const Name &name);
-  
-  /**
-   * @brief Get name of the content object
-   */
-  const Name&
-  GetName () const;
-
-  /**
-   * @brief Get smart pointer to the interest name (to avoid extra memory usage)
-   */
-  Ptr<const Name>
-  GetNamePtr () const;
-
-  /**
-   * @brief Set content object timestamp
-   * @param timestamp timestamp
-   */
-  void
-  SetTimestamp (const Time &timestamp);
-
-  /**
-   * @brief Get timestamp of the content object
-   */
-  Time
-  GetTimestamp () const;
-
-  /**
-   * @brief Set freshness of the content object
-   * @param freshness Freshness, 0s means infinity
-   */
-  void
-  SetFreshness (const Time &freshness);
-
-  /**
-   * @brief Get freshness of the content object
-   */
-  Time
-  GetFreshness () const;
-
-  /**
-   * @brief Set "fake" signature on the content object
-   * @param signature  uint32_t number, simulating content object signature
-   *
-   * Values for the signature totally depend on the application
-   */
-  void
-  SetSignature (uint32_t signature);
-
-  /**
-   * @brief Get "fake" signature of the content object
-   *
-   * Values for the signature totally depend on the application
-   */
-  uint32_t
-  GetSignature () const;
-
-  /**
-   * @brief Set key locator
-   * @param keyLocator name of the key
-   */
-  void
-  SetKeyLocator (Ptr<Name> keyLocator);
-
-  /**
-   * @brief Get key locator
-   *
-   * Note that only <KeyName> option for the key locator is supported
-   */
-  Ptr<const Name>
-  GetKeyLocator () const;
-  
-  //////////////////////////////////////////////////////////////////
-  /**
-   * @brief Get payload of data packet
-   *
-   * This payload can also carry packet tags
-   */
-  void
-  SetPayload (Ptr<Packet> payload);
-
-  /**
-   * @brief Set payload of data packet
-   *
-   * This payload can also carry packet tags
-   */
-  Ptr<const Packet>
-  GetPayload () const;
-  
-  /**
-   * @brief Get wire formatted packet
-   *
-   * If wire formatted packet has not been set before, 0 will be returned
-   */
-  inline Ptr<const Packet>
-  GetWire () const;
-
-  /**
-   * @brief Set (cache) wire formatted packet
-   */
-  inline void
-  SetWire (Ptr<const Packet> packet) const;
-
-  /**
-   * @brief Print Interest in plain-text to the specified output stream
-   */
-  void
-  Print (std::ostream &os) const;
-  
-private:
-  // NO_ASSIGN
-  Data &
-  operator = (const Data &other) { return *this; }
-  
-private:
-  Ptr<Name> m_name;
-  Time m_freshness;
-  Time m_timestamp;
-  uint32_t m_signature; // 0, means no signature, any other value application dependent (not a real signature)
-  Ptr<Packet> m_payload;
-  Ptr<Name> m_keyLocator;
-
-  mutable Ptr<const Packet> m_wire;
-};
-
-inline std::ostream &
-operator << (std::ostream &os, const Data &d)
-{
-  d.Print (os);
-  return os;
-}
-
-/**
- * @brief Class for Data parsing exception
- */
-class DataException {};
-
-inline Ptr<const Packet>
-Data::GetWire () const
-{
-  return m_wire;
-}
-
-inline void
-Data::SetWire (Ptr<const Packet> packet) const
-{
-  m_wire = packet;
-}
-
-
-} // namespace ndn
-} // namespace ns3
-
-#endif // _NDN_CONTENT_OBJECT_HEADER_H_
diff --git a/model/ndn-content-object.cc b/model/ndn-data.cc
similarity index 98%
rename from model/ndn-content-object.cc
rename to model/ndn-data.cc
index 84df61b..2f47aec 100644
--- a/model/ndn-content-object.cc
+++ b/model/ndn-data.cc
@@ -19,7 +19,7 @@
  *         Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ndn-content-object.h"
+#include "ndn-data.h"
 
 #include "ns3/log.h"
 
diff --git a/model/ndn-data.h b/model/ndn-data.h
new file mode 100644
index 0000000..4d51d37
--- /dev/null
+++ b/model/ndn-data.h
@@ -0,0 +1,221 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011-2013 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ *         Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef _NDN_CONTENT_OBJECT_HEADER_H_
+#define _NDN_CONTENT_OBJECT_HEADER_H_
+
+#include "ns3/simple-ref-count.h"
+#include "ns3/nstime.h"
+#include "ns3/packet.h"
+#include "ns3/ptr.h"
+
+#include <ns3/ndn-name.h>
+
+namespace ns3 {
+namespace ndn {
+
+/**
+ * @ingroup ndn
+ * @brief Data header
+ */
+class Data : public SimpleRefCount<Data>
+{
+public:
+  /**
+   * @brief Constructor
+   *
+   * Creates a null header
+   **/
+  Data (Ptr<Packet> payload = Create<Packet> ());
+
+  /**
+   * @brief Copy constructor
+   */
+  Data (const Data &other);
+
+  /**
+   * \brief Set content object name
+   *
+   * Sets name of the content object
+   **/
+  void
+  SetName (Ptr<Name> name);
+
+  /**
+   * @brief Another, less efficient, variant of setting content object name
+   *
+   * Sets name of the content object
+   */
+  void
+  SetName (const Name &name);
+  
+  /**
+   * @brief Get name of the content object
+   */
+  const Name&
+  GetName () const;
+
+  /**
+   * @brief Get smart pointer to the interest name (to avoid extra memory usage)
+   */
+  Ptr<const Name>
+  GetNamePtr () const;
+
+  /**
+   * @brief Set content object timestamp
+   * @param timestamp timestamp
+   */
+  void
+  SetTimestamp (const Time &timestamp);
+
+  /**
+   * @brief Get timestamp of the content object
+   */
+  Time
+  GetTimestamp () const;
+
+  /**
+   * @brief Set freshness of the content object
+   * @param freshness Freshness, 0s means infinity
+   */
+  void
+  SetFreshness (const Time &freshness);
+
+  /**
+   * @brief Get freshness of the content object
+   */
+  Time
+  GetFreshness () const;
+
+  /**
+   * @brief Set "fake" signature on the content object
+   * @param signature  uint32_t number, simulating content object signature
+   *
+   * Values for the signature totally depend on the application
+   */
+  void
+  SetSignature (uint32_t signature);
+
+  /**
+   * @brief Get "fake" signature of the content object
+   *
+   * Values for the signature totally depend on the application
+   */
+  uint32_t
+  GetSignature () const;
+
+  /**
+   * @brief Set key locator
+   * @param keyLocator name of the key
+   */
+  void
+  SetKeyLocator (Ptr<Name> keyLocator);
+
+  /**
+   * @brief Get key locator
+   *
+   * Note that only <KeyName> option for the key locator is supported
+   */
+  Ptr<const Name>
+  GetKeyLocator () const;
+  
+  //////////////////////////////////////////////////////////////////
+  /**
+   * @brief Get payload of data packet
+   *
+   * This payload can also carry packet tags
+   */
+  void
+  SetPayload (Ptr<Packet> payload);
+
+  /**
+   * @brief Set payload of data packet
+   *
+   * This payload can also carry packet tags
+   */
+  Ptr<const Packet>
+  GetPayload () const;
+  
+  /**
+   * @brief Get wire formatted packet
+   *
+   * If wire formatted packet has not been set before, 0 will be returned
+   */
+  inline Ptr<const Packet>
+  GetWire () const;
+
+  /**
+   * @brief Set (cache) wire formatted packet
+   */
+  inline void
+  SetWire (Ptr<const Packet> packet) const;
+
+  /**
+   * @brief Print Interest in plain-text to the specified output stream
+   */
+  void
+  Print (std::ostream &os) const;
+  
+private:
+  // NO_ASSIGN
+  Data &
+  operator = (const Data &other) { return *this; }
+  
+private:
+  Ptr<Name> m_name;
+  Time m_freshness;
+  Time m_timestamp;
+  uint32_t m_signature; // 0, means no signature, any other value application dependent (not a real signature)
+  Ptr<Packet> m_payload;
+  Ptr<Name> m_keyLocator;
+
+  mutable Ptr<const Packet> m_wire;
+};
+
+inline std::ostream &
+operator << (std::ostream &os, const Data &d)
+{
+  d.Print (os);
+  return os;
+}
+
+/**
+ * @brief Class for Data parsing exception
+ */
+class DataException {};
+
+inline Ptr<const Packet>
+Data::GetWire () const
+{
+  return m_wire;
+}
+
+inline void
+Data::SetWire (Ptr<const Packet> packet) const
+{
+  m_wire = packet;
+}
+
+
+} // namespace ndn
+} // namespace ns3
+
+#endif // _NDN_CONTENT_OBJECT_HEADER_H_
diff --git a/model/ndn-l3-protocol.cc b/model/ndn-l3-protocol.cc
index 0c0332f..d2d2b29 100644
--- a/model/ndn-l3-protocol.cc
+++ b/model/ndn-l3-protocol.cc
@@ -34,7 +34,7 @@
 
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "ns3/ndn-face.h"
 #include "ns3/ndn-forwarding-strategy.h"
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index 85f11c8..eece4c4 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -30,7 +30,7 @@
 #include "ndn-pit-entry-impl.h"
 
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-forwarding-strategy.h"
 #include "ns3/ndn-name.h"
 
diff --git a/model/pit/ndn-pit.cc b/model/pit/ndn-pit.cc
index 079cf3f..281a8d0 100644
--- a/model/pit/ndn-pit.cc
+++ b/model/pit/ndn-pit.cc
@@ -21,7 +21,7 @@
 #include "ndn-pit.h"
 
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 #include "ns3/log.h"
 #include "ns3/nstime.h"
diff --git a/model/wire/ccnb.h b/model/wire/ccnb.h
index a561643..eca8707 100644
--- a/model/wire/ccnb.h
+++ b/model/wire/ccnb.h
@@ -13,7 +13,7 @@
 
 #include "ns3/ndn-common.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NDN_NAMESPACE_BEGIN
 
diff --git a/model/wire/ndn-wire.cc b/model/wire/ndn-wire.cc
index ad8966f..7753f83 100644
--- a/model/wire/ndn-wire.cc
+++ b/model/wire/ndn-wire.cc
@@ -14,7 +14,7 @@
 #include "ns3/integer.h"
 #include "ns3/ndn-common.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-header-helper.h"
 
 #include "ndnsim.h"
diff --git a/model/wire/ndn-wire.h b/model/wire/ndn-wire.h
index 1bfba3d..38420e9 100644
--- a/model/wire/ndn-wire.h
+++ b/model/wire/ndn-wire.h
@@ -16,7 +16,7 @@
 #include "ns3/ndn-common.h"
 #include "ns3/ndn-name.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NDN_NAMESPACE_BEGIN
 
diff --git a/model/wire/ndnsim.h b/model/wire/ndnsim.h
index f0be388..f247f77 100644
--- a/model/wire/ndnsim.h
+++ b/model/wire/ndnsim.h
@@ -13,7 +13,7 @@
 
 #include "ns3/ndn-common.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 
 NDN_NAMESPACE_BEGIN
 
diff --git a/ndn.cxx/ndn-api-face.cc b/ndn.cxx/ndn-api-face.cc
index 6e8ba7f..4be4162 100644
--- a/ndn.cxx/ndn-api-face.cc
+++ b/ndn.cxx/ndn-api-face.cc
@@ -26,7 +26,7 @@
 
 #include <ns3/ndn-l3-protocol.h>
 #include <ns3/ndn-interest.h>
-#include <ns3/ndn-content-object.h>
+#include <ns3/ndn-data.h>
 #include <ns3/ndn-face.h>
 #include <ns3/ndn-fib.h>
 
diff --git a/ndn.cxx/ndn-api-face.h b/ndn.cxx/ndn-api-face.h
index 4ff7a13..fda34d1 100644
--- a/ndn.cxx/ndn-api-face.h
+++ b/ndn.cxx/ndn-api-face.h
@@ -29,7 +29,7 @@
 #include <ns3/ndn-face.h>
 #include <ns3/ndn-name.h>
 #include <ns3/ndn-interest.h>
-#include <ns3/ndn-content-object.h>
+#include <ns3/ndn-data.h>
 
 namespace ns3 {
 namespace ndn {
diff --git a/utils/tracers/ndn-app-delay-tracer.cc b/utils/tracers/ndn-app-delay-tracer.cc
index b48d744..230be84 100644
--- a/utils/tracers/ndn-app-delay-tracer.cc
+++ b/utils/tracers/ndn-app-delay-tracer.cc
@@ -27,7 +27,7 @@
 
 #include "ns3/ndn-app.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/simulator.h"
 #include "ns3/node-list.h"
 #include "ns3/log.h"
diff --git a/utils/tracers/ndn-cs-tracer.cc b/utils/tracers/ndn-cs-tracer.cc
index bf7df69..40aed8f 100644
--- a/utils/tracers/ndn-cs-tracer.cc
+++ b/utils/tracers/ndn-cs-tracer.cc
@@ -28,7 +28,7 @@
 
 #include "ns3/ndn-app.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/simulator.h"
 #include "ns3/node-list.h"
 #include "ns3/log.h"
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.cc b/utils/tracers/ndn-l3-aggregate-tracer.cc
index 050e63b..e977285 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.cc
+++ b/utils/tracers/ndn-l3-aggregate-tracer.cc
@@ -27,7 +27,7 @@
 #include "ns3/ndn-app.h"
 #include "ns3/ndn-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit-entry.h"
 
 #include "ns3/simulator.h"
diff --git a/utils/tracers/ndn-l3-rate-tracer.cc b/utils/tracers/ndn-l3-rate-tracer.cc
index 3d9a1f4..43f8f0a 100644
--- a/utils/tracers/ndn-l3-rate-tracer.cc
+++ b/utils/tracers/ndn-l3-rate-tracer.cc
@@ -30,7 +30,7 @@
 #include "ns3/ndn-app.h"
 #include "ns3/ndn-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit-entry.h"
 
 #include <fstream>
diff --git a/utils/tracers/ndn-l3-tracer.cc b/utils/tracers/ndn-l3-tracer.cc
index bd45113..47e67a4 100644
--- a/utils/tracers/ndn-l3-tracer.cc
+++ b/utils/tracers/ndn-l3-tracer.cc
@@ -30,7 +30,7 @@
 
 #include "ns3/ndn-face.h"
 #include "ns3/ndn-interest.h"
-#include "ns3/ndn-content-object.h"
+#include "ns3/ndn-data.h"
 #include "ns3/ndn-pit-entry.h"
 
 using namespace std;
diff --git a/wscript b/wscript
index 4cc1ee2..9a78fbc 100644
--- a/wscript
+++ b/wscript
@@ -134,7 +134,7 @@
         "model/ndn-app-face.h",
         "model/ndn-net-device-face.h",
         "model/ndn-interest.h",
-        "model/ndn-content-object.h",
+        "model/ndn-data.h",
         "model/ndn-name-components.h",
         "model/ndn-name.h",
 
