diff --git a/utils/counting-policy.h b/utils/counting-policy.h
index d8cfe07..ffa2d1a 100644
--- a/utils/counting-policy.h
+++ b/utils/counting-policy.h
@@ -24,10 +24,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/list.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for policy that just keeps track of number of elements
@@ -105,6 +104,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // COUNTING_POLICY_H_
diff --git a/utils/detail/functor-hook.h b/utils/detail/functor-hook.h
index 63dcffd..f34969c 100644
--- a/utils/detail/functor-hook.h
+++ b/utils/detail/functor-hook.h
@@ -23,12 +23,10 @@
 
 #include <boost/intrusive/parent_from_member.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
-namespace detail
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
+namespace detail {
 
 template<class BaseHook, class ValueType, int N>
 struct FunctorHook
@@ -66,6 +64,7 @@
 
 } // detail
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // FUNCTOR_HOOK_H_
diff --git a/utils/detail/multi-policy-container.h b/utils/detail/multi-policy-container.h
index 7272a01..35119cb 100644
--- a/utils/detail/multi-policy-container.h
+++ b/utils/detail/multi-policy-container.h
@@ -24,12 +24,10 @@
 #include <boost/mpl/inherit_linearly.hpp>
 #include <boost/mpl/at.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
-namespace detail
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
+namespace detail {
 
 template< class Base, class Value >
 struct policy_wrap
@@ -160,6 +158,7 @@
 
 } // detail
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // MULTI_POLICY_CONTAINER_H_
diff --git a/utils/detail/multi-type-container.h b/utils/detail/multi-type-container.h
index 24bf17c..d4971c4 100644
--- a/utils/detail/multi-type-container.h
+++ b/utils/detail/multi-type-container.h
@@ -25,12 +25,10 @@
 #include <boost/mpl/inherit.hpp>
 #include <boost/mpl/at.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
-namespace detail
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
+namespace detail {
 
 template <class T>
 struct wrap
@@ -82,6 +80,7 @@
   
 } // detail
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // MULTI_TYPE_CONTAINER_H_
diff --git a/utils/empty-policy.h b/utils/empty-policy.h
index 04bc676..a50b9e8 100644
--- a/utils/empty-policy.h
+++ b/utils/empty-policy.h
@@ -21,10 +21,9 @@
 #ifndef EMPTY_POLICY_H_
 #define EMPTY_POLICY_H_
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for empty (bogus) replacement policy
@@ -54,6 +53,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // EMPTY_POLICY_H_
diff --git a/utils/fifo-policy.h b/utils/fifo-policy.h
index 1943e06..77d4ce2 100644
--- a/utils/fifo-policy.h
+++ b/utils/fifo-policy.h
@@ -24,10 +24,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/list.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for First In First Out replacement policy
@@ -123,6 +122,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif
diff --git a/utils/load-stats-face.cc b/utils/load-stats-face.cc
index de202ee..df48f2b 100644
--- a/utils/load-stats-face.cc
+++ b/utils/load-stats-face.cc
@@ -28,12 +28,11 @@
 using namespace boost::mpl;
 using namespace boost::tuples;
 
-NS_LOG_COMPONENT_DEFINE ("LoadStatsFace");
+NS_LOG_COMPONENT_DEFINE ("ndn.LoadStatsFace");
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 std::ostream &
 operator << (std::ostream &os, const LoadStats::stats_tuple &tuple);
@@ -147,6 +146,7 @@
   return os;
 }
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
 
diff --git a/utils/load-stats-face.h b/utils/load-stats-face.h
index b8202f9..70a4c36 100644
--- a/utils/load-stats-face.h
+++ b/utils/load-stats-face.h
@@ -23,10 +23,9 @@
 
 #include "load-stats.h"
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 class LoadStatsFace
 {
@@ -132,7 +131,8 @@
 std::ostream &
 operator << (std::ostream &os, const LoadStatsFace &stats);
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
 
 #endif // LOAD_STATS_FACE_H
diff --git a/utils/load-stats-node.cc b/utils/load-stats-node.cc
index 86a149d..39e9d60 100644
--- a/utils/load-stats-node.cc
+++ b/utils/load-stats-node.cc
@@ -26,12 +26,11 @@
 
 namespace ll = boost::lambda;
 
-NS_LOG_COMPONENT_DEFINE ("LoadStatsNode");
+NS_LOG_COMPONENT_DEFINE ("ndn.LoadStatsNode");
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 void
 LoadStatsNode::Step ()
@@ -62,13 +61,13 @@
 }
 
 void
-LoadStatsNode::AddIncoming (ns3::Ptr<ns3::NdnFace> face)
+LoadStatsNode::AddIncoming (ns3::Ptr<Face> face)
 {
   m_incoming [face].count ()++;
 }
 
 void
-LoadStatsNode::AddOutgoing (ns3::Ptr<ns3::NdnFace> face)
+LoadStatsNode::AddOutgoing (ns3::Ptr<Face> face)
 {
   m_outgoing [face].count ()++;
 }
@@ -114,14 +113,14 @@
 }
 
 void
-LoadStatsNode::Rx (ns3::Ptr<ns3::NdnFace> face, uint32_t amount)
+LoadStatsNode::Rx (ns3::Ptr<Face> face, uint32_t amount)
 {
   m_pit.rx () += amount;
   m_incoming [face].rx () += amount;
 }
 
 void
-LoadStatsNode::Tx (ns3::Ptr<ns3::NdnFace> face, uint32_t amount)
+LoadStatsNode::Tx (ns3::Ptr<Face> face, uint32_t amount)
 {
   m_pit.tx () += amount;
   m_outgoing [face].tx () += amount;
@@ -187,7 +186,7 @@
 
 
 void
-LoadStatsNode::RemoveFace (ns3::Ptr<ns3::NdnFace> face)
+LoadStatsNode::RemoveFace (ns3::Ptr<Face> face)
 {
   NS_LOG_FUNCTION (this);
   m_incoming.erase (face);
@@ -213,5 +212,6 @@
 }
 
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
diff --git a/utils/load-stats-node.h b/utils/load-stats-node.h
index 5989a23..365db55 100644
--- a/utils/load-stats-node.h
+++ b/utils/load-stats-node.h
@@ -25,9 +25,10 @@
 #include <map>
 #include "ns3/ptr.h"
 
-namespace ns3
-{
-class NdnFace;
+namespace ns3 {
+namespace ndn {
+
+class Face;
 
 namespace ndnSIM
 {
@@ -37,7 +38,7 @@
 class LoadStatsNode
 {
 public:
-  typedef std::map< ns3::Ptr<ns3::NdnFace>, LoadStatsFace > stats_container;
+  typedef std::map< ns3::Ptr<Face>, LoadStatsFace > stats_container;
 
   LoadStatsNode () {}
   LoadStatsNode (const LoadStatsNode &) {}
@@ -55,13 +56,13 @@
    * Increment counter to incoming list
    */
   void
-  AddIncoming (ns3::Ptr<ns3::NdnFace> face);
+  AddIncoming (ns3::Ptr<Face> face);
 
   /**
    * Increment counter to outgoing list
    */
   void
-  AddOutgoing (ns3::Ptr<ns3::NdnFace> face);
+  AddOutgoing (ns3::Ptr<Face> face);
 
   /**
    * Increment counter to both incoming and outgoing lists, for all faces
@@ -79,13 +80,13 @@
    * Increment counter for Tx amount
    */
   void
-  Rx (ns3::Ptr<ns3::NdnFace> face, uint32_t amount);
+  Rx (ns3::Ptr<Face> face, uint32_t amount);
 
   /**
    * Increment counter for Tx amount
    */
   void
-  Tx (ns3::Ptr<ns3::NdnFace> face, uint32_t amount);
+  Tx (ns3::Ptr<Face> face, uint32_t amount);
 
   LoadStatsNode &
   operator += (const LoadStatsNode &stats);
@@ -119,7 +120,7 @@
   }
 
   void
-  RemoveFace (ns3::Ptr<ns3::NdnFace> face);
+  RemoveFace (ns3::Ptr<Face> face);
   
 private:
   LoadStatsFace   m_pit;
@@ -152,6 +153,7 @@
 operator << (std::ostream &os, const LoadStatsNode &node);
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif
diff --git a/utils/load-stats.cc b/utils/load-stats.cc
index 166a906..3bc2897 100644
--- a/utils/load-stats.cc
+++ b/utils/load-stats.cc
@@ -29,12 +29,11 @@
 const double EXP_2 = exp (-1.0/30.0); /* 1/exp(1sec/30sec) */
 const double EXP_3 = exp (-1.0/60.0); /* 1/exp(1sec/60sec) */
 
-NS_LOG_COMPONENT_DEFINE ("LoadStats");
+NS_LOG_COMPONENT_DEFINE ("ndn.LoadStats");
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 const double LoadStats::PRECISION = 0.1;
 
@@ -104,5 +103,6 @@
   return os;
 }
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
diff --git a/utils/load-stats.h b/utils/load-stats.h
index 2b2db89..3e71753 100644
--- a/utils/load-stats.h
+++ b/utils/load-stats.h
@@ -24,10 +24,9 @@
 #include "ns3/nstime.h"
 #include <boost/tuple/tuple.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 class LoadStats
 {
@@ -76,7 +75,8 @@
 std::ostream &
 operator << (std::ostream &os, const LoadStats &stats);
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
 
 #endif // LOAD_STATS_H
diff --git a/utils/lru-policy.h b/utils/lru-policy.h
index bddb281..15b482f 100644
--- a/utils/lru-policy.h
+++ b/utils/lru-policy.h
@@ -24,10 +24,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/list.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for Least Recently Used replacement policy
@@ -128,6 +127,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif
diff --git a/utils/multi-policy.h b/utils/multi-policy.h
index b50119a..386cb2e 100644
--- a/utils/multi-policy.h
+++ b/utils/multi-policy.h
@@ -34,10 +34,9 @@
 
 #include <boost/intrusive/options.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 template<typename Policies> // e.g., mpl::vector1< lru_policy_traits >
 struct multi_policy_traits
@@ -128,6 +127,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // MULTI_POLICY_H_
diff --git a/utils/payload-policy.h b/utils/payload-policy.h
index 76cf2cf..a474afd 100644
--- a/utils/payload-policy.h
+++ b/utils/payload-policy.h
@@ -24,10 +24,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/list.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for policy that keeps items in a sorted order using payload member
@@ -129,6 +128,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // PAYLOAD_POLICY_H
diff --git a/utils/payload-with-policy.h b/utils/payload-with-policy.h
index 4cfe975..7db278b 100644
--- a/utils/payload-with-policy.h
+++ b/utils/payload-with-policy.h
@@ -21,10 +21,9 @@
 #ifndef PAYLOAD_WITH_INDEX_H_
 #define PAYLOAD_WITH_INDEX_H_
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 template<typename PayloadTraits,
          typename IndexTraits>
@@ -102,6 +101,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // PAYLOAD_WITH_POLICY_H_
diff --git a/utils/persistent-policy.h b/utils/persistent-policy.h
index c7add54..95c7d8f 100644
--- a/utils/persistent-policy.h
+++ b/utils/persistent-policy.h
@@ -24,10 +24,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/list.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for persistent replacement policy
@@ -123,6 +122,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // PERSISTENT_POLICY_H_
diff --git a/utils/random-policy.h b/utils/random-policy.h
index 3bfb6e2..9e0dde6 100644
--- a/utils/random-policy.h
+++ b/utils/random-policy.h
@@ -26,10 +26,9 @@
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/set.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /**
  * @brief Traits for random replacement policy
@@ -161,6 +160,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // RANDOM_POLICY_H
diff --git a/utils/stats-tree.cc b/utils/stats-tree.cc
index aff2e93..5893861 100644
--- a/utils/stats-tree.cc
+++ b/utils/stats-tree.cc
@@ -22,14 +22,11 @@
 #include "ns3/ndn-face.h"
 #include "ns3/log.h"
 
-using namespace ns3;
+NS_LOG_COMPONENT_DEFINE ("ndn.StatsTree");
 
-NS_LOG_COMPONENT_DEFINE ("StatsTree");
-
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 StatsTree::StatsTree ()
   : m_tree ("")
@@ -50,7 +47,7 @@
 }
 
 void
-StatsTree::NewPitEntry (const ns3::NdnNameComponents &key)
+StatsTree::NewPitEntry (const NameComponents &key)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -58,7 +55,7 @@
 }
 
 void
-StatsTree::Incoming (const NdnNameComponents &key, Ptr<NdnFace> face)
+StatsTree::Incoming (const NameComponents &key, Ptr<Face> face)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -66,7 +63,7 @@
 }
 
 void
-StatsTree::Outgoing (const NdnNameComponents &key, Ptr<NdnFace> face)
+StatsTree::Outgoing (const NameComponents &key, Ptr<Face> face)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -74,7 +71,7 @@
 }
 
 void
-StatsTree::Satisfy (const NdnNameComponents &key)
+StatsTree::Satisfy (const NameComponents &key)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -82,7 +79,7 @@
 }
 
 void
-StatsTree::Timeout (const NdnNameComponents &key)
+StatsTree::Timeout (const NameComponents &key)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -90,7 +87,7 @@
 }
 
 void
-StatsTree::Rx (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face, uint32_t amount)
+StatsTree::Rx (const NameComponents &key, Ptr<Face> face, uint32_t amount)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -98,7 +95,7 @@
 }
 
 void
-StatsTree::Tx (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face, uint32_t amount)
+StatsTree::Tx (const NameComponents &key, Ptr<Face> face, uint32_t amount)
 {
   std::pair<tree_type::iterator, bool> item = m_tree.insert (key, LoadStatsNode ());
 
@@ -106,9 +103,9 @@
 }
 
 // const LoadStatsNode &
-// StatsTree::Get (const ns3::NdnNameComponents &key) const
+// StatsTree::Get (const NameComponents &key) const
 const LoadStatsNode &
-StatsTree::operator [] (const ns3::NdnNameComponents &key) const
+StatsTree::operator [] (const NameComponents &key) const
 {
   tree_type::iterator foundItem, lastItem;
   bool reachLast;
@@ -140,7 +137,7 @@
 }
 
 void
-StatsTree::RemoveFace (ns3::Ptr<ns3::NdnFace> face)
+StatsTree::RemoveFace (Ptr<Face> face)
 {
   tree_type::recursive_iterator item (&m_tree), end;
   for (; item != end; item ++)
@@ -158,6 +155,7 @@
 }
 
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
 
diff --git a/utils/stats-tree.h b/utils/stats-tree.h
index c92d4bb..0b13e2c 100644
--- a/utils/stats-tree.h
+++ b/utils/stats-tree.h
@@ -26,15 +26,14 @@
 #include "ns3/ndn-name-components.h"
 #include "ns3/ptr.h"
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 class StatsTree
 {
 public:
-  typedef trie< ns3::NdnNameComponents,
+  typedef trie< NameComponents,
                 non_pointer_traits< LoadStatsNode >, void* > tree_type;
   
   StatsTree ();
@@ -43,33 +42,33 @@
   Step ();
   
   void
-  NewPitEntry (const ns3::NdnNameComponents &key);
+  NewPitEntry (const NameComponents &key);
 
   void
-  Incoming (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face);
+  Incoming (const NameComponents &key, Ptr<Face> face);
 
   void
-  Outgoing (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face);
+  Outgoing (const NameComponents &key, Ptr<Face> face);
 
   void
-  Satisfy (const ns3::NdnNameComponents &key);
+  Satisfy (const NameComponents &key);
 
   void
-  Timeout (const ns3::NdnNameComponents &key);
+  Timeout (const NameComponents &key);
 
   void
-  Rx (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face, uint32_t amount);
+  Rx (const NameComponents &key, Ptr<Face> face, uint32_t amount);
 
   void
-  Tx (const ns3::NdnNameComponents &key, ns3::Ptr<ns3::NdnFace> face, uint32_t amount);
+  Tx (const NameComponents &key, Ptr<Face> face, uint32_t amount);
 
   // const LoadStatsNode &
-  // Get (const ns3::NdnNameComponents &key) const;
+  // Get (const NameComponents &key) const;
   const LoadStatsNode &
-  operator [] (const ns3::NdnNameComponents &key) const;
+  operator [] (const NameComponents &key) const;
 
   void
-  RemoveFace (ns3::Ptr<ns3::NdnFace> face);
+  RemoveFace (Ptr<Face> face);
   
 private:
   const LoadStatsNode &
@@ -86,7 +85,8 @@
 std::ostream &
 operator << (std::ostream &os, const StatsTree &tree);
 
-} // ndnSIM
-} // ns3
+} // namespace ndnSIM
+} // namespace ndn
+} // namespace ns3
 
 #endif // STATS_TREE_H
diff --git a/utils/trie-with-policy.h b/utils/trie-with-policy.h
index 12168ea..8afa6f8 100644
--- a/utils/trie-with-policy.h
+++ b/utils/trie-with-policy.h
@@ -23,10 +23,9 @@
 
 #include "trie.h"
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 template<typename FullKey,
          typename PayloadTraits,
@@ -236,6 +235,7 @@
 };
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // TRIE_WITH_POLICY_H_
diff --git a/utils/trie.h b/utils/trie.h
index fe52d59..4592fa5 100644
--- a/utils/trie.h
+++ b/utils/trie.h
@@ -32,10 +32,9 @@
 #include <boost/foreach.hpp>
 #include <boost/mpl/if.hpp>
 
-namespace ns3
-{
-namespace ndnSIM
-{
+namespace ns3 {
+namespace ndn {
+namespace ndnSIM {
 
 /////////////////////////////////////////////////////
 // Allow customization for payload
@@ -642,6 +641,7 @@
 
 
 } // ndnSIM
+} // ndn
 } // ns3
 
 #endif // TRIE_H_
