diff --git a/examples/ccnx-grid.cc b/examples/ccnx-grid.cc
index 9891a91..1ef2cfb 100644
--- a/examples/ccnx-grid.cc
+++ b/examples/ccnx-grid.cc
@@ -71,10 +71,13 @@
   Packet::EnablePrinting();
 
   std::string animationFile = "";
+  std::string strategy = "ns3::CcnxFloodingStrategy";
+
   CommandLine cmd;
   cmd.AddValue ("nGrid", "Number of grid nodes", nGrid);
   cmd.AddValue ("finish", "Finish time", finishTime);
   cmd.AddValue ("netanim", "NetAnim filename", animationFile);
+  cmd.AddValue ("strategy", "CCNx forwarding strategy", strategy);
   cmd.Parse (argc, argv);
   
   PointToPointHelper p2p;
@@ -89,8 +92,7 @@
   // Install CCNx stack
   NS_LOG_INFO ("Installing CCNx stack");
   CcnxStackHelper ccnxHelper;
-  //ccnxHelper.SetForwardingStrategy ("ns3::CcnxBestRouteStrategy");
-  ccnxHelper.SetForwardingStrategy ("ns3::CcnxFloodingStrategy");
+  ccnxHelper.SetForwardingStrategy (strategy);
   ccnxHelper.EnableLimits (true, Seconds(0.1));
   ccnxHelper.InstallAll ();
 
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 92bdfee..40ac57b 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -26,6 +26,8 @@
 #include "ns3/node.h"
 #include "ns3/assert.h"
 
+#include <boost/ref.hpp>
+
 NS_LOG_COMPONENT_DEFINE ("CcnxFace");
 
 namespace ns3 {
@@ -127,7 +129,7 @@
 bool
 CcnxFace::Send (Ptr<Packet> packet)
 {
-  NS_LOG_FUNCTION_NOARGS ();
+  NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
 
   /// \todo Implement tracing, if requested
 
@@ -141,7 +143,7 @@
 bool
 CcnxFace::Receive (const Ptr<const Packet> &packet)
 {
-  NS_LOG_FUNCTION_NOARGS ();
+  NS_LOG_FUNCTION (boost::cref (*this) << packet << packet->GetSize ());
 
   /// \todo Implement tracing, if requested
 
diff --git a/model/ccnx-fib.cc b/model/ccnx-fib.cc
index e4e36d5..0df2ded 100644
--- a/model/ccnx-fib.cc
+++ b/model/ccnx-fib.cc
@@ -112,6 +112,8 @@
 void
 CcnxFibEntry::UpdateStatus (Ptr<CcnxFace> face, CcnxFibFaceMetric::Status status)
 {
+  NS_LOG_FUNCTION (this << boost::cref(*face) << status);
+
   CcnxFibFaceMetricByFace::type::iterator record = m_faces.get<i_face> ().find (face);
   NS_ASSERT_MSG (record != m_faces.get<i_face> ().end (),
                  "Update status can be performed only on existing faces of CcxnFibEntry");
diff --git a/model/ccnx-flooding-strategy.cc b/model/ccnx-flooding-strategy.cc
index f2add5f..4a8dd50 100644
--- a/model/ccnx-flooding-strategy.cc
+++ b/model/ccnx-flooding-strategy.cc
@@ -67,19 +67,25 @@
     return true;
 
   // boo... :(
-  
   int propagatedCount = 0;
 
   BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry.m_fibEntry.m_faces.get<i_metric> ())
     {
+      NS_LOG_DEBUG ("Trying " << boost::cref(metricFace));
       if (metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_RED) // all non-read faces are in front
         break;
       
       if (metricFace.m_face == incomingFace) 
-        continue; // same face as incoming, don't forward
+        {
+          NS_LOG_DEBUG ("continue (same as incoming)");
+          continue; // same face as incoming, don't forward
+        }
 
       if (pitEntry.m_incoming.find (metricFace.m_face) != pitEntry.m_incoming.end ()) 
-        continue; // don't forward to face that we received interest from
+        {
+          NS_LOG_DEBUG ("continue (same as previous incoming)");
+          continue; // don't forward to face that we received interest from
+        }
 
       CcnxPitEntryOutgoingFaceContainer::type::iterator outgoing =
         pitEntry.m_outgoing.find (metricFace.m_face);
@@ -87,8 +93,10 @@
       if (outgoing != pitEntry.m_outgoing.end () &&
           outgoing->m_retxCount >= pitEntry.m_maxRetxCount)
         {
+          NS_LOG_DEBUG ("continue (same as previous outgoing)");
           continue; // already forwarded before during this retransmission cycle
         }
+      NS_LOG_DEBUG ("max retx count: " << pitEntry.m_maxRetxCount);
 
       bool faceAvailable = metricFace.m_face->IsBelowLimit ();
       if (!faceAvailable) // huh...
diff --git a/model/ccnx-forwarding-strategy.cc b/model/ccnx-forwarding-strategy.cc
index 869e424..4a1c3a8 100644
--- a/model/ccnx-forwarding-strategy.cc
+++ b/model/ccnx-forwarding-strategy.cc
@@ -36,6 +36,8 @@
 
 namespace ns3 {
 
+using namespace __ccnx_private;
+
 NS_OBJECT_ENSURE_REGISTERED (CcnxForwardingStrategy);
 
 TypeId CcnxForwardingStrategy::GetTypeId (void)
@@ -67,11 +69,11 @@
                                                    Ptr<CcnxInterestHeader> &header,
                                                    const Ptr<const Packet> &packet)
 {
-  NS_LOG_FUNCTION (this);
+  // NS_LOG_FUNCTION (this);
 
   int propagatedCount = 0;
   
-  BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry.m_fibEntry.m_faces)
+  BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry.m_fibEntry.m_faces.get<i_metric> ())
     {
       if (metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_RED ||
           metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_YELLOW)
@@ -105,6 +107,13 @@
       break; // propagate only one interest
     }
 
+  // if (Simulator::GetContext ()==1)
+  //   {
+  //     if (propagatedCount > 0)
+  //       NS_LOG_DEBUG ("Propagate via a green face");
+  //     else 
+  //       NS_LOG_DEBUG ("Can't :(");
+  //   }
   return propagatedCount > 0;
 }
 
diff --git a/model/ccnx-interest-header.h b/model/ccnx-interest-header.h
index d93b42a..979dfdd 100644
--- a/model/ccnx-interest-header.h
+++ b/model/ccnx-interest-header.h
@@ -205,9 +205,9 @@
   enum
     {
       NORMAL_INTEREST = 0,
-      NACK_LOOP = 1,
-      NACK_CONGESTION,
-      NACK_GIVEUP_PIT,
+      NACK_LOOP = 10,
+      NACK_CONGESTION = 11,
+      NACK_GIVEUP_PIT = 12,
     };
 
   void
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index 7fb9aab..17dc335 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -303,7 +303,6 @@
   if (isNew || !isDuplicated) // potential flow
     {
       // somebody is doing something bad
-      NS_ASSERT (false); // temporary assert
       return;
     }
   
@@ -324,6 +323,8 @@
   //
   // incomingFace->LeakBucketByOnePacket ();
 
+  NS_LOG_ERROR ("Nack on " << boost::cref(*incomingFace));
+
   m_pit->modify (m_pit->iterator_to (pitEntry),
                  ll::bind (&CcnxPitEntry::SetWaitingInVain, ll::_1, outFace));
   
@@ -342,8 +343,15 @@
                  ll::bind (&CcnxFibEntry::UpdateStatus,
                            ll::_1, incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW));
 
+  if (pitEntry.m_incoming.size () == 0) // interest was actually satisfied
+    {
+      // no need to do anything
+      return;
+    }
+
   if (!pitEntry.AreAllOutgoingInVain ()) // not all ougtoing are in vain
     {
+      NS_LOG_DEBUG ("Not all outgoing are in vain");
       // suppress
       // Don't do anything, we are still expecting data from some other face
       return;
@@ -358,11 +366,11 @@
   bool propagated = m_forwardingStrategy->
     PropagateInterest (pitEntry, incomingFace, header, nonNackInterest);
 
-  // ForwardingStrategy will try its best to forward packet to at least one interface.
-  // If no interests was propagated, then there is not other option for forwarding or
-  // ForwardingStrategy failed to find it. 
+  // // ForwardingStrategy will try its best to forward packet to at least one interface.
+  // // If no interests was propagated, then there is not other option for forwarding or
+  // // ForwardingStrategy failed to find it. 
   if (!propagated)
-    GiveUpInterest (pitEntry, header);
+     GiveUpInterest (pitEntry, header);
 }
 
 // Processing Interests
@@ -393,11 +401,12 @@
       // //Trace duplicate interest  
       // m_droppedInterestsTrace (header, NDN_DUPLICATE_INTEREST, m_node->GetObject<Ccnx> (), incomingFace);
 
+      NS_LOG_DEBUG ("Sending NACK_LOOP");
       header->SetNack (CcnxInterestHeader::NACK_LOOP);
-      Ptr<Packet> packet = Create<Packet> ();
-      packet->AddHeader (*header);
+      Ptr<Packet> nack = Create<Packet> ();
+      nack->AddHeader (*header);
 
-      incomingFace->Send (packet);
+      incomingFace->Send (nack);
       
       // //Trace duplicate interest  
       // m_droppedInterestsTrace (header, NDN_DUPLICATE_INTEREST, m_node->GetObject<Ccnx> (), incomingFace);
@@ -626,8 +635,7 @@
 void 
 CcnxL3Protocol::LeakBuckets ()
 {
-  NS_LOG_FUNCTION (this);
-  NS_LOG_ERROR ("Bucket Interval: " << m_bucketLeakInterval.ToDouble(Time::S));
+  // NS_LOG_FUNCTION (this);
 
   BOOST_FOREACH (const Ptr<CcnxFace> &face, m_faces)
     {
diff --git a/model/ccnx-net-device-face.cc b/model/ccnx-net-device-face.cc
index dff7694..468d8f1 100644
--- a/model/ccnx-net-device-face.cc
+++ b/model/ccnx-net-device-face.cc
@@ -95,6 +95,7 @@
                                          const Address &to,
                                          NetDevice::PacketType packetType)
 {
+  NS_LOG_FUNCTION (device << p << protocol << from << to << packetType);
   Receive (p);
 }
 
diff --git a/model/ccnx-pit-entry.cc b/model/ccnx-pit-entry.cc
index 5667c82..76c7997 100644
--- a/model/ccnx-pit-entry.cc
+++ b/model/ccnx-pit-entry.cc
@@ -106,6 +106,8 @@
 void
 CcnxPitEntry::SetWaitingInVain (CcnxPitEntryOutgoingFaceContainer::type::iterator face)
 {
+  NS_LOG_DEBUG (boost::cref (*face->m_face));
+
   m_outgoing.modify (face,
                      (&ll::_1)->*&CcnxPitEntryOutgoingFace::m_waitingInVain = true);
 }
@@ -113,6 +115,8 @@
 bool
 CcnxPitEntry::AreAllOutgoingInVain () const
 {
+  NS_LOG_DEBUG (m_outgoing.size ());
+
   bool inVain = true;
   std::for_each (m_outgoing.begin (), m_outgoing.end (),
                  ll::var(inVain) &= (&ll::_1)->*&CcnxPitEntryOutgoingFace::m_waitingInVain);
