Checkpoint
diff --git a/model/sync-logic.cc b/model/sync-logic.cc
index bd4456f..0e8d0b7 100644
--- a/model/sync-logic.cc
+++ b/model/sync-logic.cc
@@ -20,6 +20,9 @@
  *	   Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
+#include <ns3/ccnx-pit.h>
+#include <ns3/ccnx.h>
+
 #include "sync-logic.h"
 #include "sync-diff-leaf.h"
 #include "sync-full-leaf.h"
@@ -64,11 +67,11 @@
   , m_ccnxHandle(new CcnxWrapper())
 #ifndef NS3_MODULE
   , m_randomGenerator (static_cast<unsigned int> (std::time (0)))
-  , m_rangeUniformRandom (m_randomGenerator, uniform_int<> (200,300))
+  , m_rangeUniformRandom (m_randomGenerator, uniform_int<> (500,1000))
   , m_reexpressionJitter (m_randomGenerator, uniform_int<> (0,100))
 #else
   , m_rangeUniformRandom (200,300)
-  , m_reexpressionJitter (0, 100)
+  , m_reexpressionJitter (0,200)
 #endif
 {
 #ifdef _STANDALONE
@@ -81,8 +84,6 @@
 #endif
 #endif
 #endif
-
-  _LOG_DEBUG ("syncPrefix");
   
 #ifndef NS3_MODULE
   // In NS3 module these functions are moved to StartApplication method
@@ -177,18 +178,24 @@
         {
           _LOG_TRACE ("processSyncInterest (): Digest is zero, adding /state to PIT");
           m_syncInterestTable.insert (interestName + "/state");
+          // _LOG_TRACE (*GetNode ()->GetObject<ns3::Ccnx> ()->GetPit ());
         }
       else
         {
           _LOG_TRACE ("processSyncInterest (): Same state. Adding to PIT");
           m_syncInterestTable.insert (interestName);
+          // _LOG_TRACE (*GetNode ()->GetObject<ns3::Ccnx> ()->GetPit ());
         }
-      
-      // !!! important change !!!
-      m_scheduler.cancel (REEXPRESSING_INTEREST);
-      m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (m_syncInterestReexpress),
-                            bind (&SyncLogic::sendSyncInterest, this),
-                            REEXPRESSING_INTEREST);
+
+      if (m_outstandingInterest == interestName)
+        {
+          _LOG_DEBUG ("Cancelling interest reexpressing 1");
+          // !!! important change !!!
+          m_scheduler.cancel (REEXPRESSING_INTEREST);
+          m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (m_syncInterestReexpress),
+                                bind (&SyncLogic::sendSyncInterest, this),
+                                REEXPRESSING_INTEREST);
+        }
       return;
     }
   
@@ -233,7 +240,7 @@
         }
       else
         {
-          m_recentUnknownDigests.insert (DigestTime (digest, TIME_NOW + TIME_SECONDS (m_unknownDigestStoreTime)));
+          // m_recentUnknownDigests.insert (DigestTime (digest, TIME_NOW + TIME_SECONDS (m_unknownDigestStoreTime)));
           
           uint32_t waitDelay = GET_RANDOM (m_rangeUniformRandom);      
           _LOG_DEBUG ("Digest is not in the log. Schedule processing after small delay: " << waitDelay << "ms");
@@ -244,22 +251,24 @@
 
           // just in case, re-express our interest (e.g., probably something bad happened)
           
-          m_scheduler.cancel (REEXPRESSING_INTEREST);
-          m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (0),
-                                bind (&SyncLogic::sendSyncInterest, this),
-                                REEXPRESSING_INTEREST);
+          // m_scheduler.cancel (REEXPRESSING_INTEREST);
+          // m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (0),
+          //                       bind (&SyncLogic::sendSyncInterest, this),
+          //                       REEXPRESSING_INTEREST);
         }
     }
   else
     {
-      _LOG_TRACE (">> D " << interestName << "/state" << " (timed processing)");
+      _LOG_TRACE ("                                                                   (timed processing)");
+      // _LOG_TRACE (">> D " << interestName << "/state" << " (timed processing)");
 
-      m_syncInterestTable.remove (interestName + "/state");
-      m_ccnxHandle->publishData (interestName + "/state",
-                                 lexical_cast<string> (m_state),
-                                 m_syncResponseFreshness);
+      // m_syncInterestTable.remove (interestName + "/state");
+      // m_ccnxHandle->publishData (interestName + "/state",
+      //                            lexical_cast<string> (m_state),
+      //                            m_syncResponseFreshness);
 
-      if (m_outstandingInterest == interestName)
+      // exit (1);
+      // if (m_outstandingInterest == interestName)
         {
           m_scheduler.cancel (REEXPRESSING_INTEREST);
           m_scheduler.schedule (TIME_SECONDS_WITH_JITTER (0),
diff --git a/ns3/sync-ccnx-wrapper.cc b/ns3/sync-ccnx-wrapper.cc
index b61f034..5260dfc 100644
--- a/ns3/sync-ccnx-wrapper.cc
+++ b/ns3/sync-ccnx-wrapper.cc
@@ -108,7 +108,9 @@
   is >> *name;
   
   CcnxInterestHeader interestHeader;
-  interestHeader.SetNonce            (m_rand.GetValue ());
+  uint32_t nonce = m_rand.GetValue ();
+  _LOG_DEBUG ("Nonce: " << nonce);
+  interestHeader.SetNonce            (nonce);
   interestHeader.SetName             (name);
   interestHeader.SetInterestLifetime (Seconds (10000.0)); // really long-lived interests
 
diff --git a/ns3/sync-log.h b/ns3/sync-log.h
index 6dbc930..9da0dc8 100644
--- a/ns3/sync-log.h
+++ b/ns3/sync-log.h
@@ -27,6 +27,8 @@
 
 #include <ns3/log.h>
 
+#ifdef _DEBUG
+
 #define INIT_LOGGER(name) NS_LOG_COMPONENT_DEFINE(name);
 
 #define _LOG_INFO(x) NS_LOG_INFO(x)
@@ -41,6 +43,17 @@
 
 #else
 
+#define INIT_LOGGER(name) 
+#define _LOG_INFO(x) 
+#define _LOG_DEBUG(x) 
+#define _LOG_TRACE(x)
+#define _LOG_FUNCTION(x)
+#define _LOG_FUNCTION_NOARGS
+
+#endif
+
+#else
+
 #ifdef HAVE_LOG4CXX
 
 #include <log4cxx/logger.h>
diff --git a/ns3/sync-scheduler.cc b/ns3/sync-scheduler.cc
index 95e4bf8..025eb3e 100644
--- a/ns3/sync-scheduler.cc
+++ b/ns3/sync-scheduler.cc
@@ -50,7 +50,7 @@
 void
 Scheduler::schedule (const TimeDuration &reltime, Event event, uint32_t label)
 {
-  NS_LOG_DEBUG ("Schedule event for " << (Simulator::Now () +reltime).ToDouble (Time::S) << "s for label " << label);
+  _LOG_DEBUG ("Schedule event for " << (Simulator::Now () +reltime).ToDouble (Time::S) << "s for label " << label);
   
   list< EventId > &eventsForLabel = m_labeledEvents [label];
   list< EventId >::iterator i = eventsForLabel.begin ();
@@ -75,7 +75,7 @@
 Scheduler::cancel (uint32_t label)
 {
   list< EventId > &eventsForLabel = m_labeledEvents [label];
-  NS_LOG_DEBUG ("Canceling events for label " << label << " (" << eventsForLabel.size () << " events)");
+  _LOG_DEBUG ("Canceling events for label " << label << " (" << eventsForLabel.size () << " events)");
 
   for (list< EventId >::iterator i = eventsForLabel.begin ();
        i != eventsForLabel.end ();