diff --git a/model/cs/content-store-with-stats.h b/model/cs/content-store-with-stats.h
index 8d4a71d..3bdb9ec 100644
--- a/model/cs/content-store-with-stats.h
+++ b/model/cs/content-store-with-stats.h
@@ -37,6 +37,8 @@
 public:
   typedef ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::lifetime_stats_policy_traits > > > super;
 
+  typedef typename super::policy_container::template index<1>::type lifetime_stats_container;
+
   ContentStoreWithStats ()
   {
     // connect traceback to the policy
@@ -46,6 +48,9 @@
   static TypeId
   GetTypeId ();
 
+  virtual inline void
+  Print (std::ostream &os) const;
+
 private:
   static LogComponent g_log; ///< @brief Logging variable
 
@@ -81,6 +86,22 @@
   return tid;
 }
 
+template<class Policy>
+void
+ContentStoreWithStats< Policy >::Print (std::ostream &os) const
+{
+  // const freshness_policy_container &freshness = this->getPolicy ().template get<freshness_policy_container> ();
+
+  for (typename super::policy_container::const_iterator item = this->getPolicy ().begin ();
+       item != this->getPolicy ().end ();
+       item++)
+    {
+      Time alive = lifetime_stats_container::policy_base::get_time (&(*item)) - Simulator::Now ();
+      os << item->payload ()->GetName () << "(alive: " << alive.ToDouble (Time::S) << "s)" << std::endl;
+    }
+}
+
+
 
 } // namespace cs
 } // namespace ndn
