diff --git a/src/communication/sync-logic-handler.hpp b/src/communication/sync-logic-handler.hpp
index 1896484..9f6badd 100644
--- a/src/communication/sync-logic-handler.hpp
+++ b/src/communication/sync-logic-handler.hpp
@@ -1,7 +1,8 @@
-#ifndef NLSR_SLH_HPP
-#define NLSR_SLH_HPP
+#ifndef NLSR_SYNC_LOGIC_HANDLER_HPP
+#define NLSR_SYNC_LOGIC_HANDLER_HPP
 
 #include <iostream>
+#include <boost/cstdint.hpp>
 
 #include <ndn-cxx/face.hpp>
 #include <nsync/sync-socket.h>
@@ -24,7 +25,7 @@
 class SyncLogicHandler
 {
 public:
-  SyncLogicHandler(ndn::shared_ptr<boost::asio::io_service> ioService)
+  SyncLogicHandler(boost::asio::io_service& ioService)
     : m_validator(new ndn::ValidatorNull())
     , m_syncFace(new ndn::Face(ioService))
   {}
@@ -34,26 +35,26 @@
   createSyncSocket(Nlsr& pnlsr);
 
   void
-  nsyncUpdateCallBack(const vector<Sync::MissingDataInfo>& v,
+  nsyncUpdateCallBack(const std::vector<Sync::MissingDataInfo>& v,
                       Sync::SyncSocket* socket, Nlsr& pnlsr);
 
   void
-  nsyncRemoveCallBack(const string& prefix, Nlsr& pnlsr);
+  nsyncRemoveCallBack(const std::string& prefix, Nlsr& pnlsr);
 
   void
-  removeRouterFromSyncing(string& routerPrefix);
+  removeRouterFromSyncing(const std::string& routerPrefix);
 
   void
-  publishRoutingUpdate(SequencingManager& sm, string updatePrefix);
+  publishRoutingUpdate(SequencingManager& sm, const std::string& updatePrefix);
 
   // void
   // publishKeyUpdate(KeyManager& km);
 
   void
-  publishIdentityUpdate(string identityName);
+  publishIdentityUpdate(const std::string& identityName);
 
   void
-  setSyncPrefix(string sp)
+  setSyncPrefix(const std::string& sp)
   {
     m_syncPrefix.clear();
     m_syncPrefix.set(sp);
@@ -61,17 +62,17 @@
 
 private:
   void
-  processUpdateFromSync(std::string updateName, uint64_t seqNo, Nlsr& pnlsr);
+  processUpdateFromSync(const std::string& updateName, uint64_t seqNo, Nlsr& pnlsr);
 
   void
-  processRoutingUpdateFromSync(std::string routerName, uint64_t seqNo,
+  processRoutingUpdateFromSync(const std::string& routerName, uint64_t seqNo,
                                Nlsr& pnlsr);
 
   // void
   // processKeysUpdateFromSync(std::string certName, uint64_t seqNo, Nlsr& pnlsr);
 
   void
-  publishSyncUpdate(string updatePrefix, uint64_t seqNo);
+  publishSyncUpdate(const std::string& updatePrefix, uint64_t seqNo);
 
 private:
   ndn::shared_ptr<ndn::ValidatorNull> m_validator;
@@ -82,4 +83,4 @@
 
 } //namespace nlsr
 
-#endif //NLSR_SLH_HPP
+#endif //NLSR_SYNC_LOGIC_HANDLER_HPP
