diff --git a/model/ccnx-content-store-lru.cc b/model/ccnx-content-store-lru.cc
index bb35c1b..8c0d777 100644
--- a/model/ccnx-content-store-lru.cc
+++ b/model/ccnx-content-store-lru.cc
@@ -80,37 +80,6 @@
   type;
 };
 
-/**
- * \ingroup ccnx
- * \brief Typedef for MRU index of content store container
- */
-struct CcnxContentStoreByMru
-{
-  typedef
-  CcnxContentStoreLruContainer::type::index<i_mru>::type
-  type;
-};
-
-#ifdef _DEBUG
-#define DUMP_INDEX_TAG i_ordered
-#define DUMP_INDEX     CcnxContentStoreOrderedPrefix
-/**
- * \ingroup ccnx
- * \brief Typedef for ordered index of content store container
- */
-struct CcnxContentStoreOrderedPrefix
-{
-  typedef
-  CcnxContentStoreLruContainer::type::index<i_ordered>::type
-  type;
-};
-#else
-#define DUMP_INDEX_TAG i_mru
-#define DUMP_INDEX     CcnxContentStoreByMru
-#endif
-
-
-
 CcnxContentStoreLru::CcnxContentStoreLru ()
   : m_maxSize (100)
 { } // this value shouldn't matter, NS-3 should call SetSize with default value specified in AddAttribute earlier
@@ -130,9 +99,12 @@
       m_contentStore.get<i_mru> ().relocate (m_contentStore.get<i_mru> ().begin (),
                                            m_contentStore.project<i_mru> (it));
 
+      m_cacheHitsTrace (interest, it->GetHeader ());
+      
       // return fully formed CCNx packet
       return boost::make_tuple (it->GetFullyFormedCcnxPacket (), it->GetHeader (), it->GetPacket ());
     }
+  m_cacheMissesTrace (interest);
   return boost::tuple<Ptr<Packet>, Ptr<CcnxContentObjectHeader>, Ptr<Packet> > (0, 0, 0);
 }   
     
@@ -161,12 +133,9 @@
 void 
 CcnxContentStoreLru::Print() const
 {
-  for( DUMP_INDEX::type::iterator it=m_contentStore.get<DUMP_INDEX_TAG> ().begin ();
-       it != m_contentStore.get<DUMP_INDEX_TAG> ().end ();
-       it++
-       )
+  BOOST_FOREACH (const CcnxContentStoreEntry &entry, m_contentStore.get<i_mru> ())
     {
-      NS_LOG_INFO (it->GetName ());
+      NS_LOG_INFO (entry.GetName ());
     }
 }
 
diff --git a/model/ccnx-content-store-lru.h b/model/ccnx-content-store-lru.h
index 66a81a2..b510646 100644
--- a/model/ccnx-content-store-lru.h
+++ b/model/ccnx-content-store-lru.h
@@ -29,13 +29,9 @@
 #include <boost/multi_index/sequenced_index.hpp>
 #include <boost/multi_index/hashed_index.hpp>
 #include <boost/multi_index/mem_fun.hpp>
-#include <boost/tuple/tuple.hpp>
 
 #include "ccnx.h"
 #include "ccnx-name-components-hash-helper.h"
-// #include "ccnx-content-object-header.h"
-// #include "ccnx-interest-header.h"
-// #include "ccnx-name-components.h"
 
 namespace  ns3
 {
@@ -45,7 +41,6 @@
  *
  * - First index (tag<prefix>) is a unique hash index based on NDN prefix of the stored content.
  * - Second index (tag<mru>) is a sequential index used to maintain up to m_maxSize most recent used (MRU) entries in the content store
- * - Third index (tag<ordered>) is just a helper to provide stored prefixes in ordered way. Should be disabled in production build
  *
  * \see http://www.boost.org/doc/libs/1_46_1/libs/multi_index/doc/ for more information on Boost.MultiIndex library
  */
@@ -63,15 +58,6 @@
                                           &CcnxContentStoreEntry::GetName>,
         CcnxPrefixHash>,
       boost::multi_index::sequenced<boost::multi_index::tag<__ccnx_private::i_mru> >
-#ifdef _DEBUG
-      ,
-      boost::multi_index::ordered_unique<
-        boost::multi_index::tag<__ccnx_private::i_ordered>,
-        boost::multi_index::const_mem_fun<CcnxContentStoreEntry,
-                                          const CcnxNameComponents&,
-                                          &CcnxContentStoreEntry::GetName>
-          >
-#endif
       >
     > type;
   /// @endcond
diff --git a/model/ccnx-content-store.cc b/model/ccnx-content-store.cc
index 986405f..c5a66c9 100644
--- a/model/ccnx-content-store.cc
+++ b/model/ccnx-content-store.cc
@@ -40,6 +40,11 @@
   static TypeId tid = TypeId ("ns3::CcnxContentStore")
     .SetGroupName ("Ccnx")
     .SetParent<Object> ()
+
+    .AddTraceSource ("CacheHits", "Trace called every time there is a cache hit",
+                     MakeTraceSourceAccessor (&CcnxContentStore::m_cacheHitsTrace))
+    .AddTraceSource ("CacheMisses", "Trace called every time there is a cache miss",
+                     MakeTraceSourceAccessor (&CcnxContentStore::m_cacheMissesTrace))
     ;
 
   return tid;
diff --git a/model/ccnx-content-store.h b/model/ccnx-content-store.h
index dd56867..97615db 100644
--- a/model/ccnx-content-store.h
+++ b/model/ccnx-content-store.h
@@ -24,6 +24,8 @@
 
 #include "ns3/object.h"
 #include "ns3/ptr.h"
+#include "ns3/traced-callback.h"
+
 #include <boost/tuple/tuple.hpp>
 
 namespace  ns3
@@ -157,6 +159,12 @@
    */
   virtual void
   Print () const = 0;
+
+protected:
+  TracedCallback<Ptr<const CcnxInterestHeader>,
+                 Ptr<const CcnxContentObjectHeader> > m_cacheHitsTrace; ///< @brief trace of cache hits
+    
+  TracedCallback<Ptr<const CcnxInterestHeader> > m_cacheMissesTrace; ///< @brief trace of cache misses
 };
 
 inline std::ostream&
