More corrections. Now everything is ready for real tests
diff --git a/model/forwarding-strategy/fw-stats.cc b/model/forwarding-strategy/fw-stats.cc
index 1c1c873..50c404e 100644
--- a/model/forwarding-strategy/fw-stats.cc
+++ b/model/forwarding-strategy/fw-stats.cc
@@ -28,6 +28,8 @@
 
 #include "ns3/assert.h"
 #include "ns3/log.h"
+#include "ns3/simulator.h"
+
 
 #include <boost/foreach.hpp>
 #include <boost/lambda/lambda.hpp>
@@ -57,6 +59,13 @@
 }
 
 void
+FwStats::DoDispose ()
+{
+  BestRoute::DoDispose ();
+  m_statsRefreshEvent.Cancel ();
+}
+
+void
 FwStats::DidCreatePitEntry (const Ptr<CcnxFace> &incomingFace,
                             Ptr<CcnxInterestHeader> header,
                             const Ptr<const Packet> &packet,
@@ -66,6 +75,8 @@
   
   m_stats.NewPitEntry (header->GetName ());
   m_stats.Incoming (header->GetName (), incomingFace);
+  
+  ScheduleRefreshingIfNecessary ();
 }
 
 void
@@ -74,7 +85,9 @@
 {
   super::WillSatisfyPendingInterest (incomingFace, pitEntry);
   
-  m_stats.Satisfy (pitEntry->GetPrefix ());  
+  m_stats.Satisfy (pitEntry->GetPrefix ());
+  
+  ScheduleRefreshingIfNecessary ();
 }
 
 void
@@ -85,6 +98,8 @@
   super::DidSendOutInterest (outgoingFace, header, pitEntry);
 
   m_stats.Outgoing (header->GetName (), outgoingFace);
+  
+  ScheduleRefreshingIfNecessary ();
 }
 
 void
@@ -93,8 +108,31 @@
   super::WillErasePendingInterest (pitEntry);
 
   m_stats.Timeout (pitEntry->GetPrefix ());
+  
+  ScheduleRefreshingIfNecessary ();
 }
 
+void
+FwStats::ScheduleRefreshingIfNecessary ()
+{
+  if (m_statsRefreshEvent.IsRunning ()) return;
+  m_statsRefreshEvent = Simulator::Schedule (Seconds (1.0), &FwStats::RefreshStats, this);
+}
+
+void
+FwStats::RefreshStats ()
+{
+  m_stats.Step ();
+  
+  NS_LOG_DEBUG (m_stats["/"]);
+
+  if (!m_stats["/"].IsZero ())
+    {
+      m_statsRefreshEvent = Simulator::Schedule (Seconds (1.0), &FwStats::RefreshStats, this);
+    }
+}
+
+
 
 } // namespace ndnSIM
 } // namespace ns3
diff --git a/model/forwarding-strategy/fw-stats.h b/model/forwarding-strategy/fw-stats.h
index e2432b0..2d9f1fc 100644
--- a/model/forwarding-strategy/fw-stats.h
+++ b/model/forwarding-strategy/fw-stats.h
@@ -22,6 +22,8 @@
 #ifndef NDNSIM_FW_STATS_H
 #define NDNSIM_FW_STATS_H
 
+#include "ns3/event-id.h"
+
 #include "best-route.h"
 #include "../../utils/stats-tree.h"
 
@@ -30,7 +32,7 @@
 
 /**
  * \ingroup ccnx
- * \brief Best route strategy
+ * \brief Strategy based on best route and adding statistics gathering capabilities
  */
 class FwStats :
     public BestRoute
@@ -62,9 +64,21 @@
 
   virtual void
   WillErasePendingInterest (Ptr<CcnxPitEntry> pitEntry);
-    
+
+  // from Object
+  void
+  DoDispose ();
+  
+private:
+  void
+  RefreshStats ();
+
+  void
+  ScheduleRefreshingIfNecessary ();
+  
 private:
   ::ndnSIM::StatsTree m_stats;
+  EventId m_statsRefreshEvent;
   
   typedef BestRoute super;
 };
diff --git a/model/pit/ccnx-pit-entry.cc b/model/pit/ccnx-pit-entry.cc
index aca735a..9e45258 100644
--- a/model/pit/ccnx-pit-entry.cc
+++ b/model/pit/ccnx-pit-entry.cc
@@ -69,7 +69,7 @@
   std::pair<in_iterator,bool> ret = 
     m_incoming.insert (CcnxPitEntryIncomingFace (face));
 
-  NS_ASSERT_MSG (ret.second, "Something is wrong");
+  // NS_ASSERT_MSG (ret.second, "Something is wrong");
 
   return ret.first;
 }