diff --git a/model/fw/ndn-forwarding-strategy.cc b/model/fw/ndn-forwarding-strategy.cc
index b3e7940..4bab0a1 100644
--- a/model/fw/ndn-forwarding-strategy.cc
+++ b/model/fw/ndn-forwarding-strategy.cc
@@ -564,5 +564,18 @@
   // do nothing here
 }
 
+void
+ForwardingStrategy::DidAddFibEntry (Ptr<fib::Entry> fibEntry)
+{
+  // do nothing here
+}
+
+void
+ForwardingStrategy::WillRemoveFibEntry (Ptr<fib::Entry> fibEntry)
+{
+  // do nothing here
+}
+
+
 } // namespace ndn
 } // namespace ns3
diff --git a/model/fw/ndn-forwarding-strategy.h b/model/fw/ndn-forwarding-strategy.h
index d3b5c37..b838565 100644
--- a/model/fw/ndn-forwarding-strategy.h
+++ b/model/fw/ndn-forwarding-strategy.h
@@ -36,6 +36,7 @@
 namespace pit { class Entry; }
 class FibFaceMetric;
 class Fib;
+namespace fib { class Entry; }
 class ContentStore;
 
 /**
@@ -109,6 +110,20 @@
    */
   virtual void
   RemoveFace (Ptr<Face> face);
+
+  /**
+   * @brief Event fired every time a FIB entry is added to FIB
+   * @param fibEntry FIB entry that was added
+   */
+  virtual void
+  DidAddFibEntry (Ptr<fib::Entry> fibEntry);
+
+  /**
+   * @brief Fired just before FIB entry will be removed from FIB
+   * @param fibEntry FIB entry that will be removed
+   */
+  virtual void
+  WillRemoveFibEntry (Ptr<fib::Entry> fibEntry);
   
 protected:
   /**
diff --git a/model/fw/per-fib-limits.h b/model/fw/per-fib-limits.h
index 3632a87..47f9ee6 100644
--- a/model/fw/per-fib-limits.h
+++ b/model/fw/per-fib-limits.h
@@ -80,6 +80,19 @@
         exit (1);
       }
   }
+
+  /// \copydoc ForwardingStrategy::DidAddFibEntry
+  virtual void
+  DidAddFibEntry (Ptr<fib::Entry> fibEntry)
+  {
+    ObjectFactory factory;
+    factory.SetTypeId (fibEntry->m_faces.begin ()->m_face->GetObject<Limits> ()->GetInstanceTypeId ());
+    
+    Ptr<Limits> limits = factory.template Create<Limits> ();
+    fibEntry->AggregateObject (limits);
+
+    super::DidAddFibEntry (fibEntry);
+  }
   
 protected:
   /// \copydoc ForwardingStrategy::CanSendOutInterest
diff --git a/model/fw/per-out-face-limits.h b/model/fw/per-out-face-limits.h
index 534768b..2c4a935 100644
--- a/model/fw/per-out-face-limits.h
+++ b/model/fw/per-out-face-limits.h
@@ -133,10 +133,10 @@
 template<class Parent>
 bool
 PerOutFaceLimits<Parent>::CanSendOutInterest (Ptr<Face> inFace,
-                                          Ptr<Face> outFace,
-                                          Ptr<const InterestHeader> header,
-                                          Ptr<const Packet> origPacket,
-                                          Ptr<pit::Entry> pitEntry)
+                                              Ptr<Face> outFace,
+                                              Ptr<const InterestHeader> header,
+                                              Ptr<const Packet> origPacket,
+                                              Ptr<pit::Entry> pitEntry)
 {
   NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
   
