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
 
