diff --git a/src/communication/sync-logic-handler.cpp b/src/communication/sync-logic-handler.cpp
index 696f06a..16b92bc 100644
--- a/src/communication/sync-logic-handler.cpp
+++ b/src/communication/sync-logic-handler.cpp
@@ -1,6 +1,6 @@
 #include "nlsr.hpp"
 #include "sync-logic-handler.hpp"
-#include "security/key-manager.hpp"
+// #include "security/key-manager.hpp"
 #include "utility/tokenizer.hpp"
 
 
@@ -61,7 +61,7 @@
   {
     //process keys update here
     std::string certName = nt.getTokenString(0);
-    processKeysUpdateFromSync(certName, seqNo, pnlsr);
+    // processKeysUpdateFromSync(certName, seqNo, pnlsr);
   }
 }
 
@@ -107,19 +107,19 @@
   }
 }
 
-void
-SyncLogicHandler::processKeysUpdateFromSync(std::string certName,
-                                            uint64_t seqNo, Nlsr& pnlsr)
-{
-  std::cout << "Cert Name: " << certName << std::endl;
-  if (pnlsr.getKeyManager().isNewCertificate(certName, seqNo))
-  {
-    string certNamePrefix = certName + "/" +
-                            boost::lexical_cast<string>(seqNo);
-    pnlsr.getIm().expressInterest(certNamePrefix, 3,
-                                  pnlsr.getConfParameter().getInterestResendTime());
-  }
-}
+// void
+// SyncLogicHandler::processKeysUpdateFromSync(std::string certName,
+//                                             uint64_t seqNo, Nlsr& pnlsr)
+// {
+//   std::cout << "Cert Name: " << certName << std::endl;
+//   // if (pnlsr.getKeyManager().isNewCertificate(certName, seqNo))
+//   {
+//     string certNamePrefix = certName + "/" +
+//                             boost::lexical_cast<string>(seqNo);
+//     pnlsr.getIm().expressInterest(certNamePrefix, 3,
+//                                   pnlsr.getConfParameter().getInterestResendTime());
+//   }
+// }
 
 void
 SyncLogicHandler::publishRoutingUpdate(SequencingManager& sm,
@@ -129,11 +129,11 @@
   publishSyncUpdate(updatePrefix, sm.getCombinedSeqNo());
 }
 
-void
-SyncLogicHandler::publishKeyUpdate(KeyManager& km)
-{
-  publishSyncUpdate(km.getProcessCertName().toUri(), km.getCertSeqNo());
-}
+// void
+// SyncLogicHandler::publishKeyUpdate(KeyManager& km)
+// {
+//   publishSyncUpdate(km.getProcessCertName().toUri(), km.getCertSeqNo());
+// }
 
 void
 SyncLogicHandler::publishIdentityUpdate(string identityName)
