diff --git a/model/sync-app.h b/model/sync-app.h
index a0310a3..9f130c3 100644
--- a/model/sync-app.h
+++ b/model/sync-app.h
@@ -23,9 +23,6 @@
 #ifndef SYNC_APP_H
 #define SYNC_APP_H
 
-namespace ns3
-{
-
 namespace Sync
 {
 
@@ -37,6 +34,4 @@
 
 } // Sync
 
-} // ns3
-
 #endif // SYNC_APP_H
diff --git a/model/sync-ccnx-name-info.cc b/model/sync-ccnx-name-info.cc
index bbcf465..c1fbf93 100644
--- a/model/sync-ccnx-name-info.cc
+++ b/model/sync-ccnx-name-info.cc
@@ -29,11 +29,10 @@
 using namespace std;
 using namespace boost;
 
-namespace ns3 {
 namespace Sync {
 
 NameInfoConstPtr
-CcnxNameInfo::FindOrCreate (Ptr<const CcnxNameComponents> name)
+CcnxNameInfo::FindOrCreate (ns3::Ptr<const ns3::CcnxNameComponents> name)
 {
   string key = lexical_cast<string> (*name);
 
@@ -44,11 +43,11 @@
   return item.first->second;
 }
 
-CcnxNameInfo::CcnxNameInfo (Ptr<const CcnxNameComponents> name)
+CcnxNameInfo::CcnxNameInfo (ns3::Ptr<const ns3::CcnxNameComponents> name)
   : m_name (name)
 {
   m_id = m_ids ++; // set ID for a newly inserted element
-  m_digest << *name;
+  // m_digest << *name;
 }
 
 string
@@ -71,6 +70,4 @@
 }
 
 
-
 } // Sync
-} // ns3
diff --git a/model/sync-ccnx-name-info.h b/model/sync-ccnx-name-info.h
index d26183a..17ed162 100644
--- a/model/sync-ccnx-name-info.h
+++ b/model/sync-ccnx-name-info.h
@@ -25,10 +25,7 @@
 
 #include "sync-name-info.h"
 #include "ns3/ptr.h"
-
-namespace ns3 {
-
-class CcnxNameComponents;
+#include "ns3/ccnx-name-components.h"
 
 namespace Sync {
 
@@ -40,7 +37,7 @@
    * @param name routable prefix
    */
   static NameInfoConstPtr
-  FindOrCreate (Ptr<const CcnxNameComponents> name);
+  FindOrCreate (ns3::Ptr<const ns3::CcnxNameComponents> name);
 
   virtual ~CcnxNameInfo () { };
   
@@ -62,12 +59,11 @@
    */
   CcnxNameInfo () {}
   CcnxNameInfo& operator = (const CcnxNameInfo &info) { return *this; }
-  CcnxNameInfo (Ptr<const CcnxNameComponents> name);
+  CcnxNameInfo (ns3::Ptr<const ns3::CcnxNameComponents> name);
   
-  Ptr<const CcnxNameComponents> m_name;
+  ns3::Ptr<const ns3::CcnxNameComponents> m_name;
 };
 
 } // Sync
-} // ns3
 
 #endif // SYNC_CCNX_NAME_INFO_H
diff --git a/model/sync-diff-leaf.h b/model/sync-diff-leaf.h
index d6ef532..4ebc6d5 100644
--- a/model/sync-diff-leaf.h
+++ b/model/sync-diff-leaf.h
@@ -25,7 +25,6 @@
 
 #include "sync-leaf.h"
 
-namespace ns3 {
 namespace Sync {
 
 /**
@@ -86,6 +85,5 @@
 typedef boost::shared_ptr<DiffLeaf> DiffLeafPtr;
 
 } // Sync
-} // ns3
 
 #endif // SYNC_DIFF_LEAF_H
diff --git a/model/sync-diff-state-container.h b/model/sync-diff-state-container.h
index 2865c5d..7f510bb 100644
--- a/model/sync-diff-state-container.h
+++ b/model/sync-diff-state-container.h
@@ -23,7 +23,6 @@
 #ifndef SYNC_DIFF_STATE_CONTAINER_H
 #define SYNC_DIFF_STATE_CONTAINER_H
 
-namespace ns3 {
 namespace Sync {
 
 #include "diff-state.h"
@@ -75,6 +74,5 @@
 
 
 } // Sync
-} // ns3
 
 #endif // SYNC_DIFF_STATE_CONTAINER_H
diff --git a/model/sync-diff-state.cc b/model/sync-diff-state.cc
index b5bb7cf..d0b6f6c 100644
--- a/model/sync-diff-state.cc
+++ b/model/sync-diff-state.cc
@@ -27,7 +27,6 @@
 
 using namespace boost;
 
-namespace ns3 {
 namespace Sync {
 
 DiffState::DiffState ()
@@ -80,4 +79,3 @@
 
 
 } // ns3
-} // Sync
diff --git a/model/sync-diff-state.h b/model/sync-diff-state.h
index 49f61ae..14202c4 100644
--- a/model/sync-diff-state.h
+++ b/model/sync-diff-state.h
@@ -25,7 +25,6 @@
 
 #include "sync-state.h"
 
-namespace ns3 {
 namespace Sync {
 
 class DiffState;
@@ -91,6 +90,5 @@
 };
 
 } // Sync
-} // ns3
 
 #endif // SYNC_DIFF_STATE_H
diff --git a/model/sync-digest.cc b/model/sync-digest.cc
index 863431e..a499659 100644
--- a/model/sync-digest.cc
+++ b/model/sync-digest.cc
@@ -28,7 +28,6 @@
 
 using namespace boost;
 
-namespace ns3 {
 namespace Sync {
 
 Digest::Digest ()
@@ -106,5 +105,4 @@
 
 
 } // Sync
-} // ns3
 
diff --git a/model/sync-digest.h b/model/sync-digest.h
index 0030b4a..fca9798 100644
--- a/model/sync-digest.h
+++ b/model/sync-digest.h
@@ -27,7 +27,6 @@
 #include <openssl/evp.h>
 #include <boost/cstdint.hpp>
 
-namespace ns3 {
 namespace Sync {
 
 const std::size_t HASH_SIZE = 160;
@@ -92,6 +91,5 @@
 struct DigestCalculationError : virtual boost::exception { };
 
 } // Sync
-} // ns3
 
 #endif // SYNC_DIGEST_H
diff --git a/model/sync-full-state.cc b/model/sync-full-state.cc
index ffd3120..b7e948f 100644
--- a/model/sync-full-state.cc
+++ b/model/sync-full-state.cc
@@ -31,7 +31,6 @@
 using namespace boost;
 namespace ll = boost::lambda;
 
-namespace ns3 {
 namespace Sync {
 
 
@@ -44,17 +43,17 @@
 {
 }
 
-Time
+ns3::Time
 FullState::getTimeFromLastUpdate () const
 {
-  return Simulator::Now () - m_lastUpdated;
+  return ns3::Simulator::Now () - m_lastUpdated;
 }
   
 // from State
 void
 FullState::update (NameInfoConstPtr info, const SeqNo &seq)
 {
-  m_lastUpdated = Simulator::Now ();
+  m_lastUpdated = ns3::Simulator::Now ();
 
   LeafContainer::iterator item = m_leaves.find (*info);
   if (item == m_leaves.end ())
@@ -70,11 +69,10 @@
 void
 FullState::remove (NameInfoConstPtr info)
 {
-  m_lastUpdated = Simulator::Now ();
+  m_lastUpdated = ns3::Simulator::Now ();
 
   m_leaves.erase (*info);
 }
 
 
 } // Sync
-} // ns3
diff --git a/model/sync-full-state.h b/model/sync-full-state.h
index 2803497..75b6b1b 100644
--- a/model/sync-full-state.h
+++ b/model/sync-full-state.h
@@ -26,7 +26,6 @@
 #include "ns3/nstime.h"
 #include "sync-state.h"
 
-namespace ns3 {
 namespace Sync {
 
 /**
@@ -47,7 +46,7 @@
    *
    * This value can be used to randomize reconciliation waiting time in SyncApp
    */
-  Time
+  ns3::Time
   getTimeFromLastUpdate () const;
   
   // from State
@@ -58,11 +57,10 @@
   remove (NameInfoConstPtr info);
   
 private:
-  Time m_lastUpdated; ///< @brief Time when state was updated last time
+  ns3::Time m_lastUpdated; ///< @brief Time when state was updated last time
 };
 
 
 } // Sync
-} // ns3
 
 #endif // SYNC_STATE_H
diff --git a/model/sync-leaf.h b/model/sync-leaf.h
index a7f2ce5..79e6b45 100644
--- a/model/sync-leaf.h
+++ b/model/sync-leaf.h
@@ -26,7 +26,6 @@
 #include "sync-seq-no.h"
 #include "sync-name-info.h"
 
-namespace ns3 {
 namespace Sync {
 
 /**
@@ -88,6 +87,5 @@
 typedef boost::shared_ptr<Leaf> LeafPtr;
 
 } // Sync
-} // ns3
 
 #endif // SYNC_LEAF_H
diff --git a/model/sync-name-info.cc b/model/sync-name-info.cc
index 07f57ae..d4928cd 100644
--- a/model/sync-name-info.cc
+++ b/model/sync-name-info.cc
@@ -25,7 +25,6 @@
 
 #include <boost/lexical_cast.hpp>
 
-namespace ns3 {
 namespace Sync {
 
 NameInfo::NameMap NameInfo::m_names;
@@ -39,4 +38,3 @@
 // NameInfo::getDigest<PrefixInfo> () const;
 
 } // Sync
-} // ns3
diff --git a/model/sync-name-info.h b/model/sync-name-info.h
index 7a1467a..bc04c33 100644
--- a/model/sync-name-info.h
+++ b/model/sync-name-info.h
@@ -26,8 +26,8 @@
 #include <boost/shared_ptr.hpp>
 #include <map>
 #include <string>
+#include "sync-digest.h"
 
-namespace ns3 {
 namespace Sync {
 
 /**
@@ -80,6 +80,5 @@
 
 
 } // Sync
-} // ns3
 
 #endif // SYNC_NAME_INFO_H
diff --git a/model/sync-name-manager.cc b/model/sync-name-manager.cc
deleted file mode 100644
index 2680859..0000000
--- a/model/sync-name-manager.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Zhenkai Zhu <zhenkai@cs.ucla.edu>
- *         卞超轶 Chaoyi Bian <bcy@pku.edu.cn>
- *	   Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
diff --git a/model/sync-name-manager.h b/model/sync-name-manager.h
deleted file mode 100644
index 90c71e0..0000000
--- a/model/sync-name-manager.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Zhenkai Zhu <zhenkai@cs.ucla.edu>
- *         卞超轶 Chaoyi Bian <bcy@pku.edu.cn>
- *	   Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- */
-
-#ifndef SYNC_NAME_MANAGER_H
-#define SYNC_NAME_MANAGER_H
-
-namespace ns3
-{
-
-namespace Sync
-{
-
-class NameManager
-{
-public:
-private:
-};
-
-} // Sync
-
-} // ns3
-
-#endif // SYNC_NAME_MANAGER_H
diff --git a/model/sync-seq-no.h b/model/sync-seq-no.h
index 3923d37..bc6fc0f 100644
--- a/model/sync-seq-no.h
+++ b/model/sync-seq-no.h
@@ -25,11 +25,7 @@
 
 #include <boost/cstdint.hpp>
 
-namespace ns3
-{
-
-namespace Sync
-{
+namespace Sync {
 
 /**
  * @brief Sequence number abstraction
@@ -102,6 +98,4 @@
 
 } // Sync
 
-} // ns3
-
 #endif // SYNC_SEQ_NO_H
diff --git a/model/sync-state-leaf-container.h b/model/sync-state-leaf-container.h
index c674fc1..8f44fc9 100644
--- a/model/sync-state-leaf-container.h
+++ b/model/sync-state-leaf-container.h
@@ -36,7 +36,6 @@
 
 namespace mi = boost::multi_index;
 
-namespace ns3 {
 namespace Sync {
 
 struct NameInfoHash : public std::unary_function<NameInfo, std::size_t>
@@ -69,6 +68,5 @@
 };
 
 } // Sync
-} // ns3
 
 #endif // SYNC_STATE_LEAF_CONTAINER
diff --git a/model/sync-state-manager.h b/model/sync-state-manager.h
index 3aa12bd..cbd0b49 100644
--- a/model/sync-state-manager.h
+++ b/model/sync-state-manager.h
@@ -25,7 +25,6 @@
 
 #include "sync-diff-state-container.h"
 
-namespace ns3 {
 namespace Sync {
 
 class StateManager
@@ -39,6 +38,5 @@
 
 
 } // Sync
-} // ns3
 
 #endif // SYNC_STATE_MANAGER_H
diff --git a/model/sync-state.h b/model/sync-state.h
index 84abea6..edff566 100644
--- a/model/sync-state.h
+++ b/model/sync-state.h
@@ -25,8 +25,6 @@
 
 #include "sync-state-leaf-container.h"
 
-namespace ns3 {
-
 /**
  * \defgroup sync SYNC protocol
  *
@@ -65,6 +63,5 @@
 };
 
 } // Sync
-} // ns3
 
 #endif // SYNC_STATE_H
