diff --git a/daemon/fw/strategy.cpp b/daemon/fw/strategy.cpp
index dd7eab5..14e4cbe 100644
--- a/daemon/fw/strategy.cpp
+++ b/daemon/fw/strategy.cpp
@@ -23,28 +23,36 @@
 }
 
 void
+Strategy::beforeSatisfyPendingInterest(shared_ptr<pit::Entry> pitEntry,
+                                       const Face& inFace, const Data& data)
+{
+  NFD_LOG_DEBUG("beforeSatisfyPendingInterest pitEntry=" << pitEntry->getName() <<
+    " inFace=" << inFace.getId() << " data=" << data.getName());
+}
+
+void
 Strategy::beforeExpirePendingInterest(shared_ptr<pit::Entry> pitEntry)
 {
   NFD_LOG_DEBUG("beforeExpirePendingInterest pitEntry=" << pitEntry->getName());
 }
 
-void
-Strategy::afterAddFibEntry(shared_ptr<fib::Entry> fibEntry)
-{
-  NFD_LOG_DEBUG("afterAddFibEntry fibEntry=" << fibEntry->getPrefix());
-}
-
-void
-Strategy::afterUpdateFibEntry(shared_ptr<fib::Entry> fibEntry)
-{
-  NFD_LOG_DEBUG("afterUpdateFibEntry fibEntry=" << fibEntry->getPrefix());
-}
-
-void
-Strategy::beforeRemoveFibEntry(shared_ptr<fib::Entry> fibEntry)
-{
-  NFD_LOG_DEBUG("beforeRemoveFibEntry fibEntry=" << fibEntry->getPrefix());
-}
+//void
+//Strategy::afterAddFibEntry(shared_ptr<fib::Entry> fibEntry)
+//{
+//  NFD_LOG_DEBUG("afterAddFibEntry fibEntry=" << fibEntry->getPrefix());
+//}
+//
+//void
+//Strategy::afterUpdateFibEntry(shared_ptr<fib::Entry> fibEntry)
+//{
+//  NFD_LOG_DEBUG("afterUpdateFibEntry fibEntry=" << fibEntry->getPrefix());
+//}
+//
+//void
+//Strategy::beforeRemoveFibEntry(shared_ptr<fib::Entry> fibEntry)
+//{
+//  NFD_LOG_DEBUG("beforeRemoveFibEntry fibEntry=" << fibEntry->getPrefix());
+//}
 
 void
 Strategy::sendInterest(shared_ptr<pit::Entry> pitEntry,
diff --git a/daemon/fw/strategy.hpp b/daemon/fw/strategy.hpp
index 027acdf..c565bd5 100644
--- a/daemon/fw/strategy.hpp
+++ b/daemon/fw/strategy.hpp
@@ -54,6 +54,14 @@
                        shared_ptr<fib::Entry> fibEntry,
                        shared_ptr<pit::Entry> pitEntry) =0;
   
+  /** \brief trigger before PIT entry is satisfied
+   *
+   *  In this base class this method does nothing.
+   */
+  virtual void
+  beforeSatisfyPendingInterest(shared_ptr<pit::Entry> pitEntry,
+                               const Face& inFace, const Data& data);
+  
   /** \brief trigger before PIT entry expires
    *
    *  PIT entry expires when InterestLifetime has elapsed for all InRecords,
@@ -66,28 +74,28 @@
   virtual void
   beforeExpirePendingInterest(shared_ptr<pit::Entry> pitEntry);
   
-  /** \brief trigger after FIB entry is being inserted
-   *         and becomes managed by this strategy
-   *
-   *  In this base class this method does nothing.
-   */
-  virtual void
-  afterAddFibEntry(shared_ptr<fib::Entry> fibEntry);
-  
-  /** \brief trigger after FIB entry being managed by this strategy is updated
-   *
-   *  In this base class this method does nothing.
-   */
-  virtual void
-  afterUpdateFibEntry(shared_ptr<fib::Entry> fibEntry);
-  
-  /** \brief trigger before FIB entry ceises to be managed by this strategy
-   *         or is being deleted
-   *
-   *  In this base class this method does nothing.
-   */
-  virtual void
-  beforeRemoveFibEntry(shared_ptr<fib::Entry> fibEntry);
+//  /** \brief trigger after FIB entry is being inserted
+//   *         and becomes managed by this strategy
+//   *
+//   *  In this base class this method does nothing.
+//   */
+//  virtual void
+//  afterAddFibEntry(shared_ptr<fib::Entry> fibEntry);
+//  
+//  /** \brief trigger after FIB entry being managed by this strategy is updated
+//   *
+//   *  In this base class this method does nothing.
+//   */
+//  virtual void
+//  afterUpdateFibEntry(shared_ptr<fib::Entry> fibEntry);
+//  
+//  /** \brief trigger before FIB entry ceises to be managed by this strategy
+//   *         or is being deleted
+//   *
+//   *  In this base class this method does nothing.
+//   */
+//  virtual void
+//  beforeRemoveFibEntry(shared_ptr<fib::Entry> fibEntry);
   
 protected: // actions
   /// send Interest to outFace
