Another set of refactoring
diff --git a/helper/boost-graph-ndn-global-routing-helper.h b/helper/boost-graph-ndn-global-routing-helper.h
index ab619c6..df08c73 100644
--- a/helper/boost-graph-ndn-global-routing-helper.h
+++ b/helper/boost-graph-ndn-global-routing-helper.h
@@ -35,13 +35,12 @@
 #include <list>
 #include <map>
 
-namespace boost
-{
+namespace boost {
 
 class NdnGlobalRouterGraph
 {
 public:
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > Vertice;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > Vertice;
   typedef uint16_t edge_property_type;
   typedef uint32_t vertex_property_type;
   
@@ -49,14 +48,14 @@
   {
     for (ns3::NodeList::Iterator node = ns3::NodeList::Begin (); node != ns3::NodeList::End (); node++)
       {
-        ns3::Ptr<ns3::NdnGlobalRouter> gr = (*node)->GetObject<ns3::NdnGlobalRouter> ();
+        ns3::Ptr<ns3::ndn::GlobalRouter> gr = (*node)->GetObject<ns3::ndn::GlobalRouter> ();
 	if (gr != 0)
 	  m_vertices.push_back (gr);
       }
 
     for (ns3::ChannelList::Iterator channel = ns3::ChannelList::Begin (); channel != ns3::ChannelList::End (); channel++)
       {
-        ns3::Ptr<ns3::NdnGlobalRouter> gr = (*channel)->GetObject<ns3::NdnGlobalRouter> ();
+        ns3::Ptr<ns3::ndn::GlobalRouter> gr = (*channel)->GetObject<ns3::ndn::GlobalRouter> ();
 	if (gr != 0)
 	  m_vertices.push_back (gr);
       }
@@ -85,7 +84,7 @@
 {
   // Graph concept
   typedef NdnGlobalRouterGraph::Vertice vertex_descriptor;
-  typedef ns3::NdnGlobalRouter::Incidency edge_descriptor;
+  typedef ns3::ndn::GlobalRouter::Incidency edge_descriptor;
   typedef directed_tag directed_category;
   typedef disallow_parallel_edge_tag edge_parallel_category;
   typedef ndn_global_router_graph_category traversal_category;
@@ -95,7 +94,7 @@
   typedef size_t vertices_size_type;
 
   // AdjacencyGraph concept
-  typedef ns3::NdnGlobalRouter::IncidencyList::iterator out_edge_iterator;
+  typedef ns3::ndn::GlobalRouter::IncidencyList::iterator out_edge_iterator;
   typedef size_t degree_size_type;
 
   // typedef size_t edges_size_type;
@@ -206,9 +205,9 @@
 struct property_traits< EdgeWeights >
 {
   // Metric property map
-  typedef tuple< ns3::Ptr<ns3::NdnFace>, uint16_t > value_type;
-  typedef tuple< ns3::Ptr<ns3::NdnFace>, uint16_t > reference;
-  typedef ns3::NdnGlobalRouter::Incidency key_type;
+  typedef tuple< ns3::Ptr<ns3::ndn::Face>, uint16_t > value_type;
+  typedef tuple< ns3::Ptr<ns3::ndn::Face>, uint16_t > reference;
+  typedef ns3::ndn::GlobalRouter::Incidency key_type;
   typedef readable_property_map_tag category;
 };
 
@@ -254,8 +253,8 @@
     return a + b.get<1> ();
   }
 
-  tuple< ns3::Ptr<ns3::NdnFace>, uint32_t >
-  operator () (tuple< ns3::Ptr<ns3::NdnFace>, uint32_t > a,
+  tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t >
+  operator () (tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t > a,
                property_traits< EdgeWeights >::reference b) const
   {
     if (a.get<0> () == 0)
@@ -271,7 +270,7 @@
   // Metric property map
   typedef uint32_t value_type;
   typedef uint32_t reference;
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > key_type;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > key_type;
   typedef readable_property_map_tag category;
 };
 
@@ -300,16 +299,16 @@
 }
 
 // void
-// put (cref< std::map< ns3::Ptr<ns3::NdnGlobalRouter>, ns3::Ptr<ns3::NdnGlobalRouter> > > map,
+// put (cref< std::map< ns3::Ptr<ns3::ndn::GlobalRouter>, ns3::Ptr<ns3::ndn::GlobalRouter> > > map,
 
 uint32_t
-get (const boost::VertexIds&, ns3::Ptr<ns3::NdnGlobalRouter> &gr)
+get (const boost::VertexIds&, ns3::Ptr<ns3::ndn::GlobalRouter> &gr)
 {
   return gr->GetId ();
 }
 
 inline property_traits< EdgeWeights >::reference
-get(const boost::EdgeWeights&, ns3::NdnGlobalRouter::Incidency &edge)
+get(const boost::EdgeWeights&, ns3::ndn::GlobalRouter::Incidency &edge)
 {
   if (edge.get<1> () == 0)
     return property_traits< EdgeWeights >::reference (0, 0);
@@ -318,7 +317,7 @@
 }
 
 struct PredecessorsMap :
-  public std::map< ns3::Ptr< ns3::NdnGlobalRouter >, ns3::Ptr< ns3::NdnGlobalRouter > >
+    public std::map< ns3::Ptr< ns3::ndn::GlobalRouter >, ns3::Ptr< ns3::ndn::GlobalRouter > >
 {
 };
 
@@ -326,15 +325,15 @@
 struct property_traits< reference_wrapper<PredecessorsMap> >
 {
   // Metric property map
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > value_type;
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > reference;
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > key_type;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > value_type;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > reference;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > key_type;
   typedef read_write_property_map_tag category;
 };
 
 
 struct DistancesMap :
-  public std::map< ns3::Ptr< ns3::NdnGlobalRouter >, tuple< ns3::Ptr<ns3::NdnFace>, uint32_t > >
+    public std::map< ns3::Ptr< ns3::ndn::GlobalRouter >, tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t > >
 {
 };
 
@@ -342,18 +341,18 @@
 struct property_traits< reference_wrapper<DistancesMap> >
 {
   // Metric property map
-  typedef tuple< ns3::Ptr<ns3::NdnFace>, uint32_t > value_type;
-  typedef tuple< ns3::Ptr<ns3::NdnFace>, uint32_t > reference;
-  typedef ns3::Ptr< ns3::NdnGlobalRouter > key_type;
+  typedef tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t > value_type;
+  typedef tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t > reference;
+  typedef ns3::Ptr< ns3::ndn::GlobalRouter > key_type;
   typedef read_write_property_map_tag category;
 };
 
-inline tuple< ns3::Ptr<ns3::NdnFace>, uint32_t >
-get (DistancesMap &map, ns3::Ptr<ns3::NdnGlobalRouter> key)
+inline tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t >
+get (DistancesMap &map, ns3::Ptr<ns3::ndn::GlobalRouter> key)
 {
   boost::DistancesMap::iterator i = map.find (key);
   if (i == map.end ())
-    return tuple< ns3::Ptr<ns3::NdnFace>, uint32_t > (0, std::numeric_limits<uint32_t>::max ());
+    return tuple< ns3::Ptr<ns3::ndn::Face>, uint32_t > (0, std::numeric_limits<uint32_t>::max ());
   else
     return i->second;
 }
diff --git a/helper/ccnb-parser/ccnb-parser-common.h b/helper/ccnb-parser/common.h
similarity index 97%
rename from helper/ccnb-parser/ccnb-parser-common.h
rename to helper/ccnb-parser/common.h
index 528bcb0..260ae74 100644
--- a/helper/ccnb-parser/ccnb-parser-common.h
+++ b/helper/ccnb-parser/common.h
@@ -22,13 +22,14 @@
 #define _CCNB_PARSER_COMMON_H_
 
 namespace ns3 {
+namespace ndn {
 
 /**
- * \ingroup ccnx
- * \defgroup ccnx-ccnb CCNB decoding routines
+ * \ingroup ndn
+ * \defgroup ndn-ccnb CCNB decoding routines
  */
 /**
- * \ingroup ccnx-ccnb
+ * \ingroup ndn-ccnb
  * \brief Namespace for ccnb parer
  */
 namespace CcnbParser {
@@ -174,6 +175,7 @@
 };
 
 } // namespace CcnxParser
+} // namespace ndn
 } // namespace ns3
 
 #endif // _CCNB_PARSER_COMMON_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc b/helper/ccnb-parser/syntax-tree/attr.cc
similarity index 95%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
rename to helper/ccnb-parser/syntax-tree/attr.cc
index bdc1f0a..fda4c77 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
+++ b/helper/ccnb-parser/syntax-tree/attr.cc
@@ -18,10 +18,11 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-attr.h"
-#include "../ccnb-parser-common.h"
+#include "attr.h"
+#include "../common.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 // length length in octets of UTF-8 encoding of tag name - 1 (minimum tag name length is 1) 
@@ -42,3 +43,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h b/helper/ccnb-parser/syntax-tree/attr.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h
rename to helper/ccnb-parser/syntax-tree/attr.h
index 1b7d5e8..6238aee 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h
+++ b/helper/ccnb-parser/syntax-tree/attr.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_ATTR_H_
 #define _CCNB_PARSER_ATTR_H_
 
-#include "ccnb-parser-base-attr.h"
+#include "base-attr.h"
 #include <string>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -56,5 +57,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_ATTR_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h b/helper/ccnb-parser/syntax-tree/base-attr.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h
rename to helper/ccnb-parser/syntax-tree/base-attr.h
index 9b20073..d6890a1 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h
+++ b/helper/ccnb-parser/syntax-tree/base-attr.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_BASE_ATTR_H_
 #define _CCNB_PARSER_BASE_ATTR_H_
 
-#include "ccnb-parser-udata.h"
+#include "udata.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -41,5 +42,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_BASE_ATTR_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h b/helper/ccnb-parser/syntax-tree/base-tag.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h
rename to helper/ccnb-parser/syntax-tree/base-tag.h
index 15310a5..403dcb4 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h
+++ b/helper/ccnb-parser/syntax-tree/base-tag.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_BASE_TAG_H_
 #define _CCNB_PARSER_BASE_TAG_H_
 
-#include "ccnb-parser-block.h"
+#include "block.h"
 #include <list>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -49,6 +50,7 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_BASE_TAG_H_
 
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc b/helper/ccnb-parser/syntax-tree/blob.cc
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc
rename to helper/ccnb-parser/syntax-tree/blob.cc
index 159643f..6df6012 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc
+++ b/helper/ccnb-parser/syntax-tree/blob.cc
@@ -18,9 +18,10 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-blob.h"
+#include "blob.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 Blob::Blob (Buffer::Iterator &start, uint32_t length)
@@ -47,3 +48,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h b/helper/ccnb-parser/syntax-tree/blob.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h
rename to helper/ccnb-parser/syntax-tree/blob.h
index 195c84c..1745b1d 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h
+++ b/helper/ccnb-parser/syntax-tree/blob.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_BLOB_H_
 #define _CCNB_PARSER_BLOB_H_
 
-#include "ccnb-parser-block.h"
+#include "block.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -57,5 +58,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_BLOB_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc b/helper/ccnb-parser/syntax-tree/block.cc
similarity index 89%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc
rename to helper/ccnb-parser/syntax-tree/block.cc
index 805582a..0d425dd 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc
+++ b/helper/ccnb-parser/syntax-tree/block.cc
@@ -18,21 +18,22 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-block.h"
+#include "block.h"
 
-#include "ccnb-parser-blob.h"
-#include "ccnb-parser-udata.h"
-#include "ccnb-parser-tag.h"
-#include "ccnb-parser-dtag.h"
-#include "ccnb-parser-attr.h"
-#include "ccnb-parser-dattr.h"
-#include "ccnb-parser-ext.h"
+#include "blob.h"
+#include "udata.h"
+#include "tag.h"
+#include "dtag.h"
+#include "attr.h"
+#include "dattr.h"
+#include "ext.h"
 
 #include "ns3/log.h"
 
-NS_LOG_COMPONENT_DEFINE ("CcnbParserBlock");
+NS_LOG_COMPONENT_DEFINE ("ndn.CcnbParser.Block");
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /// @cond include_hidden
@@ -95,3 +96,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h b/helper/ccnb-parser/syntax-tree/block.h
similarity index 91%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
rename to helper/ccnb-parser/syntax-tree/block.h
index 6ea5fba..23604f5 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
+++ b/helper/ccnb-parser/syntax-tree/block.h
@@ -26,12 +26,13 @@
 #include "ns3/ptr.h"
 
 // visitors
-#include "../visitors/ccnb-parser-void-no-argu-visitor.h"
-#include "../visitors/ccnb-parser-void-visitor.h"
-#include "../visitors/ccnb-parser-no-argu-visitor.h"
-#include "../visitors/ccnb-parser-visitor.h"
+#include "../visitors/void-no-argu-visitor.h"
+#include "../visitors/void-visitor.h"
+#include "../visitors/no-argu-visitor.h"
+#include "../visitors/visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -81,5 +82,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_BLOCK_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc b/helper/ccnb-parser/syntax-tree/dattr.cc
similarity index 96%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc
rename to helper/ccnb-parser/syntax-tree/dattr.cc
index bb6be82..dde424c 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc
+++ b/helper/ccnb-parser/syntax-tree/dattr.cc
@@ -18,9 +18,10 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-dattr.h"
+#include "dattr.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 // dictionary attributes are not used (yet?) in CCNx 
@@ -34,3 +35,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h b/helper/ccnb-parser/syntax-tree/dattr.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h
rename to helper/ccnb-parser/syntax-tree/dattr.h
index 6775017..e4c622c 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h
+++ b/helper/ccnb-parser/syntax-tree/dattr.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_DATTR_H_
 #define _CCNB_PARSER_DATTR_H_
 
-#include "ccnb-parser-base-attr.h"
+#include "base-attr.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -55,5 +56,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_DATTR_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc b/helper/ccnb-parser/syntax-tree/dtag.cc
similarity index 96%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
rename to helper/ccnb-parser/syntax-tree/dtag.cc
index e7d9b98..129b363 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
+++ b/helper/ccnb-parser/syntax-tree/dtag.cc
@@ -18,12 +18,13 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-dtag.h"
+#include "dtag.h"
 
-#include "ccnb-parser-base-attr.h"
-#include "ccnb-parser-base-tag.h"
+#include "base-attr.h"
+#include "base-tag.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 Dtag::Dtag (Buffer::Iterator &start, uint32_t dtag)
@@ -85,3 +86,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h b/helper/ccnb-parser/syntax-tree/dtag.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h
rename to helper/ccnb-parser/syntax-tree/dtag.h
index cca0bba..cf9871e 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h
+++ b/helper/ccnb-parser/syntax-tree/dtag.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_DTAG_H_
 #define _CCNB_PARSER_DTAG_H_
 
-#include "ccnb-parser-base-tag.h"
+#include "base-tag.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -60,5 +61,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_DTAG_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.cc b/helper/ccnb-parser/syntax-tree/ext.cc
similarity index 96%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-ext.cc
rename to helper/ccnb-parser/syntax-tree/ext.cc
index 7d90019..b80743c 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.cc
+++ b/helper/ccnb-parser/syntax-tree/ext.cc
@@ -18,9 +18,10 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-ext.h"
+#include "ext.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 Ext::Ext (Buffer::Iterator &start, uint32_t extSubtype)
@@ -30,3 +31,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h b/helper/ccnb-parser/syntax-tree/ext.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h
rename to helper/ccnb-parser/syntax-tree/ext.h
index 568706b..072405c 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h
+++ b/helper/ccnb-parser/syntax-tree/ext.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_EXT_H_
 #define _CCNB_PARSER_EXT_H_
 
-#include "ccnb-parser-block.h"
+#include "block.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -55,5 +56,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_EXT_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc b/helper/ccnb-parser/syntax-tree/tag.cc
similarity index 96%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
rename to helper/ccnb-parser/syntax-tree/tag.cc
index 723c57e..5a0d96c 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
+++ b/helper/ccnb-parser/syntax-tree/tag.cc
@@ -18,11 +18,12 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-tag.h"
+#include "tag.h"
 
-#include "ccnb-parser-base-attr.h"
+#include "base-attr.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 Tag::Tag (Buffer::Iterator &start, uint32_t length)
@@ -64,3 +65,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h b/helper/ccnb-parser/syntax-tree/tag.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h
rename to helper/ccnb-parser/syntax-tree/tag.h
index c80581d..94f4d32 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h
+++ b/helper/ccnb-parser/syntax-tree/tag.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_TAG_H_
 #define _CCNB_PARSER_TAG_H_
 
-#include "ccnb-parser-base-tag.h"
+#include "base-tag.h"
 #include <string>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -56,5 +57,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_TAG_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.cc b/helper/ccnb-parser/syntax-tree/udata.cc
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-udata.cc
rename to helper/ccnb-parser/syntax-tree/udata.cc
index 91cba15..cd69aba 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.cc
+++ b/helper/ccnb-parser/syntax-tree/udata.cc
@@ -18,9 +18,10 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-udata.h"
+#include "udata.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 Udata::Udata (Buffer::Iterator &start, uint32_t length)
@@ -44,3 +45,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h b/helper/ccnb-parser/syntax-tree/udata.h
similarity index 97%
rename from helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h
rename to helper/ccnb-parser/syntax-tree/udata.h
index b6ef2c2..b589ea4 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h
+++ b/helper/ccnb-parser/syntax-tree/udata.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_UDATA_H_
 #define _CCNB_PARSER_UDATA_H_
 
-#include "ccnb-parser-block.h"
+#include "block.h"
 #include <string>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -54,5 +55,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_UDATA_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.cc b/helper/ccnb-parser/visitors/content-type-visitor.cc
similarity index 93%
rename from helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.cc
rename to helper/ccnb-parser/visitors/content-type-visitor.cc
index 34608b1..a89b99c 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.cc
+++ b/helper/ccnb-parser/visitors/content-type-visitor.cc
@@ -18,10 +18,11 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-content-type-visitor.h"
-#include "../syntax-tree/ccnb-parser-blob.h"
+#include "content-type-visitor.h"
+#include "../syntax-tree/blob.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -48,3 +49,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.h b/helper/ccnb-parser/visitors/content-type-visitor.h
similarity index 96%
rename from helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.h
rename to helper/ccnb-parser/visitors/content-type-visitor.h
index 0c3cc6c..2cbd883 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-content-type-visitor.h
+++ b/helper/ccnb-parser/visitors/content-type-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_CONTENT_TYPE_VISITOR_H_
 #define _CCNB_PARSER_CONTENT_TYPE_VISITOR_H_
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_CONTENT_TYPE_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc b/helper/ccnb-parser/visitors/depth-first-visitor.cc
similarity index 86%
rename from helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc
rename to helper/ccnb-parser/visitors/depth-first-visitor.cc
index 9a89c19..305fff6 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/depth-first-visitor.cc
@@ -18,19 +18,20 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-depth-first-visitor.h"
+#include "depth-first-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-blob.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
-#include "../syntax-tree/ccnb-parser-tag.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
-#include "../syntax-tree/ccnb-parser-attr.h"
-#include "../syntax-tree/ccnb-parser-dattr.h"
-#include "../syntax-tree/ccnb-parser-ext.h"
+#include "../syntax-tree/blob.h"
+#include "../syntax-tree/udata.h"
+#include "../syntax-tree/tag.h"
+#include "../syntax-tree/dtag.h"
+#include "../syntax-tree/attr.h"
+#include "../syntax-tree/dattr.h"
+#include "../syntax-tree/ext.h"
 
 #include <boost/foreach.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -106,3 +107,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.h b/helper/ccnb-parser/visitors/depth-first-visitor.h
similarity index 97%
rename from helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.h
rename to helper/ccnb-parser/visitors/depth-first-visitor.h
index 98c3c96..2257802 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.h
+++ b/helper/ccnb-parser/visitors/depth-first-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_DEPTH_FIRST_VISITOR_H_
 #define _CCNB_PARSER_DEPTH_FIRST_VISITOR_H_
 
-#include "ccnb-parser-visitor.h"
+#include "visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_DEPTH_FIRST_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc b/helper/ccnb-parser/visitors/interest-visitor.cc
similarity index 90%
rename from helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc
rename to helper/ccnb-parser/visitors/interest-visitor.cc
index 5188f8d..175eaad 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc
+++ b/helper/ccnb-parser/visitors/interest-visitor.cc
@@ -18,34 +18,35 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-interest-visitor.h"
+#include "interest-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-block.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
+#include "../syntax-tree/block.h"
+#include "../syntax-tree/dtag.h"
 
 #include "ns3/ndn-name-components.h"
+#include "ns3/ndn-interest-header.h"
 
 #include "ns3/assert.h"
 #include "ns3/nstime.h"
 
-#include "ns3/ndn-interest-header.h"
-#include "ccnb-parser-name-components-visitor.h"
-#include "ccnb-parser-non-negative-integer-visitor.h"
-#include "ccnb-parser-timestamp-visitor.h"
-#include "ccnb-parser-uint32t-blob-visitor.h"
+#include "name-components-visitor.h"
+#include "non-negative-integer-visitor.h"
+#include "timestamp-visitor.h"
+#include "uint32t-blob-visitor.h"
 
 #include <boost/foreach.hpp>
 
 #include "ns3/log.h"
 
-NS_LOG_COMPONENT_DEFINE ("CcnbParserInterestVisitor");
+NS_LOG_COMPONENT_DEFINE ("ndn.CcnbParser.InterestVisitor");
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 // We don't care about any other fields
 void
-InterestVisitor::visit (Dtag &n, boost::any param/*should be NdnInterestHeader* */)
+InterestVisitor::visit (Dtag &n, boost::any param/*should be InterestHeader* */)
 {
   // uint32_t n.m_dtag;
   // std::list<Ptr<Block> > n.m_nestedBlocks;
@@ -55,7 +56,7 @@
   static TimestampVisitor          timestampVisitor;
   static Uint32tBlobVisitor        nonceVisitor;
   
-  NdnInterestHeader &interest = *(boost::any_cast<NdnInterestHeader*> (param));
+  InterestHeader &interest = *(boost::any_cast<InterestHeader*> (param));
 
   switch (n.m_dtag)
     {
@@ -73,7 +74,7 @@
         NS_LOG_DEBUG ("Name");
 
         // process name components
-        Ptr<NdnNameComponents> name = Create<NdnNameComponents> ();
+        Ptr<NameComponents> name = Create<NameComponents> ();
         
         BOOST_FOREACH (Ptr<Block> block, n.m_nestedTags)
           {
@@ -106,7 +107,7 @@
       {
         NS_LOG_DEBUG ("Exclude");
         // process exclude components
-        Ptr<NdnNameComponents> exclude = Create<NdnNameComponents> ();
+        Ptr<NameComponents> exclude = Create<NameComponents> ();
         
         BOOST_FOREACH (Ptr<Block> block, n.m_nestedTags)
           {
@@ -183,4 +184,5 @@
 }
 
 } // namespace CcnbParser
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.h b/helper/ccnb-parser/visitors/interest-visitor.h
similarity index 92%
rename from helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.h
rename to helper/ccnb-parser/visitors/interest-visitor.h
index 35a1e13..f78d07f 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.h
+++ b/helper/ccnb-parser/visitors/interest-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_INTEREST_VISITOR_H_
 #define _CCNB_PARSER_INTEREST_VISITOR_H_
 
-#include "ccnb-parser-void-depth-first-visitor.h"
+#include "void-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,7 +45,8 @@
   virtual void visit (Dtag &n, boost::any param/*should be CcnxInterestHeader* */);
 };
 
-}
-}
+} // namespace CcnbParser
+} // namespace ndn
+} // namespace ns3
 
 #endif // _CCNB_PARSER_INTEREST_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc b/helper/ccnb-parser/visitors/name-components-visitor.cc
similarity index 87%
rename from helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc
rename to helper/ccnb-parser/visitors/name-components-visitor.cc
index 387292b..ef87281 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc
+++ b/helper/ccnb-parser/visitors/name-components-visitor.cc
@@ -18,23 +18,25 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-name-components-visitor.h"
+#include "name-components-visitor.h"
 
-#include "ccnb-parser-string-visitor.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
+#include "string-visitor.h"
+#include "../syntax-tree/dtag.h"
+
 #include "ns3/ndn-name-components.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 void
-NameComponentsVisitor::visit (Dtag &n, boost::any param/*should be NdnNameComponents* */)
+NameComponentsVisitor::visit (Dtag &n, boost::any param/*should be NameComponents* */)
 {
   // uint32_t n.m_dtag;
   // std::list<Ptr<Block> > n.m_nestedBlocks;
   static StringVisitor stringVisitor; 
  
-  NdnNameComponents &components = *(boost::any_cast<NdnNameComponents*> (param));
+  NameComponents &components = *(boost::any_cast<NameComponents*> (param));
 
   switch (n.m_dtag)
     {
@@ -55,3 +57,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.h b/helper/ccnb-parser/visitors/name-components-visitor.h
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.h
rename to helper/ccnb-parser/visitors/name-components-visitor.h
index 70257c5..823de35 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.h
+++ b/helper/ccnb-parser/visitors/name-components-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_NAME_COMPONENTS_VISITOR_H_
 #define _CCNB_PARSER_NAME_COMPONENTS_VISITOR_H_
 
-#include "ccnb-parser-void-depth-first-visitor.h"
+#include "void-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -38,6 +39,7 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_NAME_COMPONENTS_VISITOR_H_
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc b/helper/ccnb-parser/visitors/no-argu-depth-first-visitor.cc
similarity index 85%
rename from helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc
rename to helper/ccnb-parser/visitors/no-argu-depth-first-visitor.cc
index 12264fd..53f1122 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/no-argu-depth-first-visitor.cc
@@ -18,19 +18,20 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-blob.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
-#include "../syntax-tree/ccnb-parser-tag.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
-#include "../syntax-tree/ccnb-parser-attr.h"
-#include "../syntax-tree/ccnb-parser-dattr.h"
-#include "../syntax-tree/ccnb-parser-ext.h"
+#include "../syntax-tree/blob.h"
+#include "../syntax-tree/udata.h"
+#include "../syntax-tree/tag.h"
+#include "../syntax-tree/dtag.h"
+#include "../syntax-tree/attr.h"
+#include "../syntax-tree/dattr.h"
+#include "../syntax-tree/ext.h"
 
 #include <boost/foreach.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -106,3 +107,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.h b/helper/ccnb-parser/visitors/no-argu-depth-first-visitor.h
similarity index 96%
rename from helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.h
rename to helper/ccnb-parser/visitors/no-argu-depth-first-visitor.h
index 7d3841d..4b6c2e9 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.h
+++ b/helper/ccnb-parser/visitors/no-argu-depth-first-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_NO_ARGU_DEPTH_FIRST_VISITOR_H_
 #define _CCNB_PARSER_NO_ARGU_DEPTH_FIRST_VISITOR_H_
 
-#include "ccnb-parser-no-argu-visitor.h"
+#include "no-argu-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_NO_ARGU_DEPTH_FIRST_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h b/helper/ccnb-parser/visitors/no-argu-visitor.h
similarity index 97%
rename from helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h
rename to helper/ccnb-parser/visitors/no-argu-visitor.h
index 95be166..abbf843 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h
+++ b/helper/ccnb-parser/visitors/no-argu-visitor.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_NO_ARGU_VISITOR_H_
 #define _CCNB_PARSER_NO_ARGU_VISITOR_H_
 
-#include "../ccnb-parser-common.h"
+#include "../common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -50,5 +51,6 @@
   
 }
 }
+}
 
 #endif // _CCNB_PARSER_NO_ARGU_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc b/helper/ccnb-parser/visitors/non-negative-integer-visitor.cc
similarity index 90%
rename from helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc
rename to helper/ccnb-parser/visitors/non-negative-integer-visitor.cc
index a9aed41..d5fc041 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc
+++ b/helper/ccnb-parser/visitors/non-negative-integer-visitor.cc
@@ -18,13 +18,14 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-non-negative-integer-visitor.h"
+#include "non-negative-integer-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-blob.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
+#include "../syntax-tree/blob.h"
+#include "../syntax-tree/udata.h"
 #include <sstream>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -49,3 +50,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.h b/helper/ccnb-parser/visitors/non-negative-integer-visitor.h
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.h
rename to helper/ccnb-parser/visitors/non-negative-integer-visitor.h
index 7ecc3a9..2bb9f91 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.h
+++ b/helper/ccnb-parser/visitors/non-negative-integer-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_NON_NEGATIVE_INTEGER_VISITOR_H_
 #define _CCNB_PARSER_NON_NEGATIVE_INTEGER_VISITOR_H_
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -41,5 +42,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_NON_NEGATIVE_INTEGER_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc b/helper/ccnb-parser/visitors/string-visitor.cc
similarity index 89%
rename from helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc
rename to helper/ccnb-parser/visitors/string-visitor.cc
index 6fb5e6b..5f44bf3 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc
+++ b/helper/ccnb-parser/visitors/string-visitor.cc
@@ -18,11 +18,12 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-string-visitor.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
-#include "../syntax-tree/ccnb-parser-blob.h"
+#include "string-visitor.h"
+#include "../syntax-tree/udata.h"
+#include "../syntax-tree/blob.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -41,3 +42,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.h b/helper/ccnb-parser/visitors/string-visitor.h
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-string-visitor.h
rename to helper/ccnb-parser/visitors/string-visitor.h
index 2a1e8ed..ea285d1 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.h
+++ b/helper/ccnb-parser/visitors/string-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_STRING_VISITOR_H_
 #define _CCNB_PARSER_STRING_VISITOR_H_
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -41,5 +42,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_STRING_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc b/helper/ccnb-parser/visitors/timestamp-visitor.cc
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc
rename to helper/ccnb-parser/visitors/timestamp-visitor.cc
index 4569bb9..5917711 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc
+++ b/helper/ccnb-parser/visitors/timestamp-visitor.cc
@@ -18,12 +18,13 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-timestamp-visitor.h"
-#include "../syntax-tree/ccnb-parser-blob.h"
+#include "timestamp-visitor.h"
+#include "../syntax-tree/blob.h"
 
 #include "ns3/nstime.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any/*Time*/
@@ -61,3 +62,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.h b/helper/ccnb-parser/visitors/timestamp-visitor.h
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.h
rename to helper/ccnb-parser/visitors/timestamp-visitor.h
index ff7e8c8..3884ff6 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.h
+++ b/helper/ccnb-parser/visitors/timestamp-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_TIMESTAMP_VISITOR_H_
 #define _CCNB_PARSER_TIMESTAMP_VISITOR_H_
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -41,5 +42,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_TIMESTAMP_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.cc b/helper/ccnb-parser/visitors/uint32t-blob-visitor.cc
similarity index 92%
rename from helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.cc
rename to helper/ccnb-parser/visitors/uint32t-blob-visitor.cc
index fbeee6e..351cc36 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.cc
+++ b/helper/ccnb-parser/visitors/uint32t-blob-visitor.cc
@@ -18,10 +18,11 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-uint32t-blob-visitor.h"
-#include "../syntax-tree/ccnb-parser-blob.h"
+#include "uint32t-blob-visitor.h"
+#include "../syntax-tree/blob.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 boost::any
@@ -43,3 +44,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.h b/helper/ccnb-parser/visitors/uint32t-blob-visitor.h
similarity index 96%
rename from helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.h
rename to helper/ccnb-parser/visitors/uint32t-blob-visitor.h
index e06273f..de5f374 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-uint32t-blob-visitor.h
+++ b/helper/ccnb-parser/visitors/uint32t-blob-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_UINT32T_BLOB_VISITOR_H_
 #define _CCNB_PARSER_UINT32T_BLOB_VISITOR_H_
 
-#include "ccnb-parser-no-argu-depth-first-visitor.h"
+#include "no-argu-depth-first-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_UINT32T_BLOB_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-visitor.h b/helper/ccnb-parser/visitors/visitor.h
similarity index 95%
rename from helper/ccnb-parser/visitors/ccnb-parser-visitor.h
rename to helper/ccnb-parser/visitors/visitor.h
index bc858eb..76744ee 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-visitor.h
+++ b/helper/ccnb-parser/visitors/visitor.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_VISITOR_H_
 #define _CCNB_PARSER_VISITOR_H_
 
-#include "../ccnb-parser-common.h"
+#include "../common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -48,7 +49,8 @@
   virtual ~Visitor () { }
 };                                                
                                                   
-}                                                 
+}
+}
 }                                                 
                                                   
 #endif // _CCNB_PARSER_VISITOR_H_                             
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc b/helper/ccnb-parser/visitors/void-depth-first-visitor.cc
similarity index 85%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc
rename to helper/ccnb-parser/visitors/void-depth-first-visitor.cc
index 05218b5..1a1770a 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/void-depth-first-visitor.cc
@@ -18,19 +18,20 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-void-depth-first-visitor.h"
+#include "void-depth-first-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-blob.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
-#include "../syntax-tree/ccnb-parser-tag.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
-#include "../syntax-tree/ccnb-parser-attr.h"
-#include "../syntax-tree/ccnb-parser-dattr.h"
-#include "../syntax-tree/ccnb-parser-ext.h"
+#include "../syntax-tree/blob.h"
+#include "../syntax-tree/udata.h"
+#include "../syntax-tree/tag.h"
+#include "../syntax-tree/dtag.h"
+#include "../syntax-tree/attr.h"
+#include "../syntax-tree/dattr.h"
+#include "../syntax-tree/ext.h"
 
 #include <boost/foreach.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 void
@@ -99,3 +100,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.h b/helper/ccnb-parser/visitors/void-depth-first-visitor.h
similarity index 97%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.h
rename to helper/ccnb-parser/visitors/void-depth-first-visitor.h
index 35283d2..2e1862e 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.h
+++ b/helper/ccnb-parser/visitors/void-depth-first-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_VOID_DEPTH_FIRST_VISITOR_H_
 #define _CCNB_PARSER_VOID_DEPTH_FIRST_VISITOR_H_
 
-#include "ccnb-parser-void-visitor.h"
+#include "void-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_VOID_DEPTH_FIRST_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc b/helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.cc
similarity index 84%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc
rename to helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.cc
index 15519f2..439bf93 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.cc
@@ -18,19 +18,20 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ccnb-parser-void-no-argu-depth-first-visitor.h"
+#include "void-no-argu-depth-first-visitor.h"
 
-#include "../syntax-tree/ccnb-parser-blob.h"
-#include "../syntax-tree/ccnb-parser-udata.h"
-#include "../syntax-tree/ccnb-parser-tag.h"
-#include "../syntax-tree/ccnb-parser-dtag.h"
-#include "../syntax-tree/ccnb-parser-attr.h"
-#include "../syntax-tree/ccnb-parser-dattr.h"
-#include "../syntax-tree/ccnb-parser-ext.h"
+#include "../syntax-tree/blob.h"
+#include "../syntax-tree/udata.h"
+#include "../syntax-tree/tag.h"
+#include "../syntax-tree/dtag.h"
+#include "../syntax-tree/attr.h"
+#include "../syntax-tree/dattr.h"
+#include "../syntax-tree/ext.h"
 
 #include <boost/foreach.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 void
@@ -99,3 +100,4 @@
 
 }
 }
+}
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.h b/helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.h
similarity index 96%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.h
rename to helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.h
index e796c7f..995f90a 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.h
+++ b/helper/ccnb-parser/visitors/void-no-argu-depth-first-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_VOID_NO_ARGU_DEPTH_FIRST_VISITOR_H_
 #define _CCNB_PARSER_VOID_NO_ARGU_DEPTH_FIRST_VISITOR_H_
 
-#include "ccnb-parser-void-no-argu-visitor.h"
+#include "void-no-argu-visitor.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -44,5 +45,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_VOID_NO_ARGU_DEPTH_FIRST_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h b/helper/ccnb-parser/visitors/void-no-argu-visitor.h
similarity index 97%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h
rename to helper/ccnb-parser/visitors/void-no-argu-visitor.h
index 25f9e50..6dccf4e 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h
+++ b/helper/ccnb-parser/visitors/void-no-argu-visitor.h
@@ -21,9 +21,10 @@
 #ifndef _CCNB_PARSER_VOID_NO_ARGU_VISITOR_H_
 #define _CCNB_PARSER_VOID_NO_ARGU_VISITOR_H_
 
-#include "../ccnb-parser-common.h"
+#include "../common.h"
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -49,5 +50,6 @@
   
 }
 }
+}
 
 #endif // _CCNB_PARSER_VOID_NO_ARGU_VISITOR_H_
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h b/helper/ccnb-parser/visitors/void-visitor.h
similarity index 97%
rename from helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h
rename to helper/ccnb-parser/visitors/void-visitor.h
index 1f9d1fa..6ad7eed 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h
+++ b/helper/ccnb-parser/visitors/void-visitor.h
@@ -21,10 +21,11 @@
 #ifndef _CCNB_PARSER_VOID_VISITOR_H_
 #define _CCNB_PARSER_VOID_VISITOR_H_
 
-#include "../ccnb-parser-common.h"
+#include "../common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
+namespace ndn {
 namespace CcnbParser {
 
 /**
@@ -50,5 +51,6 @@
 
 }
 }
+}
 
 #endif // _CCNB_PARSER_VOID_VISITOR_H_
diff --git a/helper/ndn-app-helper.cc b/helper/ndn-app-helper.cc
index dcaee07..58f62d3 100644
--- a/helper/ndn-app-helper.cc
+++ b/helper/ndn-app-helper.cc
@@ -28,30 +28,30 @@
 #include "ns3/mpi-interface.h"
 #endif
 
-NS_LOG_COMPONENT_DEFINE ("NdnAppHelper");
+NS_LOG_COMPONENT_DEFINE ("ndn.AppHelper");
 
-namespace ns3 
-{
+namespace ns3 {
+namespace ndn {
 
-NdnAppHelper::NdnAppHelper (const std::string &app)
+AppHelper::AppHelper (const std::string &app)
 {
   m_factory.SetTypeId (app);
 }
 
 void
-NdnAppHelper::SetPrefix (const std::string &prefix)
+AppHelper::SetPrefix (const std::string &prefix)
 {
   m_factory.Set ("Prefix", StringValue(prefix));
 }
 
 void 
-NdnAppHelper::SetAttribute (std::string name, const AttributeValue &value)
+AppHelper::SetAttribute (std::string name, const AttributeValue &value)
 {
   m_factory.Set (name, value);
 }
     
 ApplicationContainer
-NdnAppHelper::Install (Ptr<Node> node)
+AppHelper::Install (Ptr<Node> node)
 {
   ApplicationContainer apps;
   Ptr<Application> app = InstallPriv (node);
@@ -62,14 +62,14 @@
 }
     
 ApplicationContainer
-NdnAppHelper::Install (std::string nodeName)
+AppHelper::Install (std::string nodeName)
 {
   Ptr<Node> node = Names::Find<Node> (nodeName);
   return Install (node);
 }
     
 ApplicationContainer
-NdnAppHelper::Install (NodeContainer c)
+AppHelper::Install (NodeContainer c)
 {
   ApplicationContainer apps;
   for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
@@ -83,7 +83,7 @@
 }
     
 Ptr<Application>
-NdnAppHelper::InstallPriv (Ptr<Node> node)
+AppHelper::InstallPriv (Ptr<Node> node)
 {
 #ifdef NS3_MPI
   if (MpiInterface::IsEnabled () &&
@@ -94,10 +94,11 @@
     }
 #endif
   
-  Ptr<NdnApp> app = m_factory.Create<NdnApp> ();        
+  Ptr<App> app = m_factory.Create<App> ();        
   node->AddApplication (app);
         
   return app;
 }
 
-}
+} // namespace ndn
+} // namespace ns3
diff --git a/helper/ndn-app-helper.h b/helper/ndn-app-helper.h
index 1a76c84..94d1046 100644
--- a/helper/ndn-app-helper.h
+++ b/helper/ndn-app-helper.h
@@ -27,14 +27,14 @@
 #include "ns3/application-container.h"
 #include "ns3/ptr.h"
 
-namespace ns3 
-{
+namespace ns3 {
+namespace ndn {
 
 /**
  * \brief A helper to make it easier to instantiate an ns3::NdnConsumer Application
  * on a set of nodes.
  */
-class NdnAppHelper
+class AppHelper
 {        
 public:
 
@@ -43,7 +43,7 @@
    *
    * \param app Class of the application
    */
-  NdnAppHelper (const std::string &prefix);
+  AppHelper (const std::string &prefix);
 
   /**
    * @brief Set the prefix consumer will be requesting
@@ -100,6 +100,7 @@
   ObjectFactory m_factory;
 };
 
+} // namespace ndn
 } // namespace ns3
 
 #endif // NDN_APP_HELPER_H
diff --git a/helper/ndn-decoding-helper.cc b/helper/ndn-decoding-helper.cc
index 4e5e6b8..89936c1 100644
--- a/helper/ndn-decoding-helper.cc
+++ b/helper/ndn-decoding-helper.cc
@@ -22,19 +22,20 @@
 
 #include "ns3/ndn-interest-header.h"
 
-#include "ccnb-parser/visitors/ccnb-parser-interest-visitor.h"
+#include "ccnb-parser/visitors/interest-visitor.h"
 
-#include "ccnb-parser/syntax-tree/ccnb-parser-block.h"
-#include "ccnb-parser/syntax-tree/ccnb-parser-dtag.h"
+#include "ccnb-parser/syntax-tree/block.h"
+#include "ccnb-parser/syntax-tree/dtag.h"
 
 #include "ns3/log.h"
 
-NS_LOG_COMPONENT_DEFINE ("NdnDecodingHelper");
+NS_LOG_COMPONENT_DEFINE ("ndn.DecodingHelper");
 
 namespace ns3 {
+namespace ndn {
 
 size_t
-NdnDecodingHelper::Deserialize (Buffer::Iterator start, NdnInterestHeader &interest)
+DecodingHelper::Deserialize (Buffer::Iterator start, InterestHeader &interest)
 {
   static CcnbParser::InterestVisitor interestVisitor;
 
@@ -57,4 +58,5 @@
 //   return i.GetDistanceFrom (start);
 // }
 
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-decoding-helper.h b/helper/ndn-decoding-helper.h
index f6ab9fa..9e1f5ef 100644
--- a/helper/ndn-decoding-helper.h
+++ b/helper/ndn-decoding-helper.h
@@ -25,14 +25,15 @@
 #include "ns3/buffer.h"
 
 namespace ns3 {
+namespace ndn {
 
-class NdnInterestHeader;
-class NdnContentObjectHeader;
+class InterestHeader;
+class ContentObjectHeader;
 
 /**
  * \brief Helper class to decode ccnb formatted Ndn message
  */
-class NdnDecodingHelper
+class DecodingHelper
 {
 public:
   /**
@@ -42,7 +43,7 @@
    * @return Number of bytes used for deserialization
    */
   static size_t
-  Deserialize (Buffer::Iterator start, NdnInterestHeader &interest);
+  Deserialize (Buffer::Iterator start, InterestHeader &interest);
 
   /**
    * \brief Deserialize Buffer::Iterator to NdnContentObjectHeader
@@ -50,9 +51,11 @@
    * @param contentObject Pointer to the NdnContentObjectHeader to hold deserialized value
    * @return Number of bytes used for deserialization
    */
-  static size_t
-  Deserialize (Buffer::Iterator start, NdnContentObjectHeader &contentObject);
+  // static size_t
+  // Deserialize (Buffer::Iterator start, ContentObjectHeader &contentObject);
 };
+
+} // namespace ndn
 } // namespace ns3
 
 #endif // _NDN_DECODING_HELPER_H_
diff --git a/helper/ndn-encoding-helper.cc b/helper/ndn-encoding-helper.cc
index 200072b..c9292ab 100644
--- a/helper/ndn-encoding-helper.cc
+++ b/helper/ndn-encoding-helper.cc
@@ -28,9 +28,10 @@
 #include <boost/foreach.hpp>
 
 namespace ns3 {
+namespace ndn {
 
 size_t
-NdnEncodingHelper::Serialize (Buffer::Iterator start, const NdnInterestHeader &interest)
+EncodingHelper::Serialize (Buffer::Iterator start, const InterestHeader &interest)
 {
   size_t written = 0;
   written += AppendBlockHeader (start, CcnbParser::CCN_DTAG_Interest, CcnbParser::CCN_DTAG); // <Interest>
@@ -99,7 +100,7 @@
 }
 
 size_t
-NdnEncodingHelper::GetSerializedSize (const NdnInterestHeader &interest)
+EncodingHelper::GetSerializedSize (const InterestHeader &interest)
 {
   size_t written = 0;
   written += EstimateBlockHeader (CcnbParser::CCN_DTAG_Interest); // <Interest>
@@ -176,7 +177,7 @@
 #define CCN_TT_HBIT ((unsigned char)(1 << 7))
 
 size_t
-NdnEncodingHelper::AppendBlockHeader (Buffer::Iterator &start, size_t val, CcnbParser::ccn_tt tt)
+EncodingHelper::AppendBlockHeader (Buffer::Iterator &start, size_t val, CcnbParser::ccn_tt tt)
 {
   unsigned char buf[1+8*((sizeof(val)+6)/7)];
   unsigned char *p = &(buf[sizeof(buf)-1]);
@@ -195,7 +196,7 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateBlockHeader (size_t value)
+EncodingHelper::EstimateBlockHeader (size_t value)
 {
   value >>= (7-CCN_TT_BITS);
   size_t n = 1;
@@ -208,7 +209,7 @@
 }
 
 size_t
-NdnEncodingHelper::AppendNumber (Buffer::Iterator &start, uint32_t number)
+EncodingHelper::AppendNumber (Buffer::Iterator &start, uint32_t number)
 {
   std::ostringstream os;
   os << number;
@@ -222,7 +223,7 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateNumber (uint32_t number)
+EncodingHelper::EstimateNumber (uint32_t number)
 {
   std::ostringstream os;
   os << number;
@@ -230,14 +231,14 @@
 }
   
 size_t
-NdnEncodingHelper::AppendCloser (Buffer::Iterator &start)
+EncodingHelper::AppendCloser (Buffer::Iterator &start)
 {
   start.WriteU8 (CcnbParser::CCN_CLOSE);
   return 1;
 }
 
 size_t
-NdnEncodingHelper::AppendNameComponents (Buffer::Iterator &start, const NdnNameComponents &name)
+EncodingHelper::AppendNameComponents (Buffer::Iterator &start, const NameComponents &name)
 {
   size_t written = 0;
   BOOST_FOREACH (const std::string &component, name.GetComponents())
@@ -249,7 +250,7 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateNameComponents (const NdnNameComponents &name)
+EncodingHelper::EstimateNameComponents (const NameComponents &name)
 {
   size_t written = 0;
   BOOST_FOREACH (const std::string &component, name.GetComponents())
@@ -260,7 +261,7 @@
 }
 
 size_t
-NdnEncodingHelper::AppendTimestampBlob (Buffer::Iterator &start, const Time &time)
+EncodingHelper::AppendTimestampBlob (Buffer::Iterator &start, const Time &time)
 {
   // the original function implements Markers... thought not sure what are these markers for...
 
@@ -287,7 +288,7 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateTimestampBlob (const Time &time)
+EncodingHelper::EstimateTimestampBlob (const Time &time)
 {
   int required_bytes = 2; // 12 bits for fractions of a second, 4 bits left for seconds. Sometimes it is enough
   intmax_t ts = time.ToInteger (Time::S) >> 4;
@@ -298,7 +299,7 @@
 }
 
 size_t
-NdnEncodingHelper::AppendTaggedBlob (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag,
+EncodingHelper::AppendTaggedBlob (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag,
                   const uint8_t *data, size_t size)
 {
   size_t written = AppendBlockHeader (start, dtag, CcnbParser::CCN_DTAG);
@@ -317,7 +318,7 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateTaggedBlob (CcnbParser::ccn_dtag dtag, size_t size)
+EncodingHelper::EstimateTaggedBlob (CcnbParser::ccn_dtag dtag, size_t size)
 {
   if (size>0)
     return EstimateBlockHeader (dtag) + EstimateBlockHeader (size) + size + 1;
@@ -326,7 +327,7 @@
 }
 
 size_t
-NdnEncodingHelper::AppendString (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag,
+EncodingHelper::AppendString (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag,
                                   const std::string &string)
 {
   size_t written = AppendBlockHeader (start, dtag, CcnbParser::CCN_DTAG);
@@ -341,10 +342,11 @@
 }
 
 size_t
-NdnEncodingHelper::EstimateString (CcnbParser::ccn_dtag dtag, const std::string &string)
+EncodingHelper::EstimateString (CcnbParser::ccn_dtag dtag, const std::string &string)
 {
   return EstimateBlockHeader (dtag) + EstimateBlockHeader (string.size ()) + string.size () + 1;
 }
 
 
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-encoding-helper.h b/helper/ndn-encoding-helper.h
index 90b3f57..66796c3 100644
--- a/helper/ndn-encoding-helper.h
+++ b/helper/ndn-encoding-helper.h
@@ -23,22 +23,23 @@
 
 #include <sys/types.h>
 
-#include "ccnb-parser/ccnb-parser-common.h"
+#include "ccnb-parser/common.h"
 #include "ns3/ptr.h"
 #include "ns3/nstime.h"
 #include "ns3/buffer.h"
 
 namespace ns3 {
+namespace ndn {
 
-class NdnNameComponents;
+class NameComponents;
 
-class NdnInterestHeader;
-class NdnContentObjectHeader;
+class InterestHeader;
+class ContentObjectHeader;
   
 /**
  * \brief Helper to encode/decode ccnb formatted Ndn message
  */
-class NdnEncodingHelper
+class EncodingHelper
 {
 public:
   /**
@@ -48,7 +49,7 @@
    * @return length of serialized NdnInterestHeader
    */
   static size_t
-  Serialize (Buffer::Iterator start, const NdnInterestHeader &interest);
+  Serialize (Buffer::Iterator start, const InterestHeader &interest);
 
   /**
    * \brief Compute the size of serialized NdnInterestHeader
@@ -56,7 +57,7 @@
    * @return length 
    */
   static size_t
-  GetSerializedSize (const NdnInterestHeader &interest);
+  GetSerializedSize (const InterestHeader &interest);
   
 public:
   /**
@@ -98,7 +99,7 @@
 
   /**
    * @brief Append CCNB closer tag (estimated size is 1)
-   * @param start Buffer to store serialized NdnInterestHeader
+   * @param start Buffer to store serialized InterestHeader
    *
    * @returns written length
    */
@@ -106,22 +107,22 @@
   AppendCloser (Buffer::Iterator &start);
 
   /**
-   * @brief Append NdnNameComponents in CCNB encoding
-   * @param start Buffer to store serialized NdnInterestHeader
-   * @param name constant reference to NdnNameComponents object
+   * @brief Append NameComponents in CCNB encoding
+   * @param start Buffer to store serialized InterestHeader
+   * @param name constant reference to NameComponents object
    *
    * @returns written length
    */
   static size_t
-  AppendNameComponents (Buffer::Iterator &start, const NdnNameComponents &name);
+  AppendNameComponents (Buffer::Iterator &start, const NameComponents &name);
 
   /**
-   * @brief Estimate size of NdnNameComponents in CCNB encoding
-   * @param name constant reference to NdnNameComponents object
+   * @brief Estimate size of NameComponents in CCNB encoding
+   * @param name constant reference to NameComponents object
    * @returns estimated length
    */
   static size_t
-  EstimateNameComponents (const NdnNameComponents &name);
+  EstimateNameComponents (const NameComponents &name);
 
   /**
    * Append a binary timestamp as a BLOB using the ccn binary
@@ -213,11 +214,12 @@
 
 template<class T>
 size_t
-NdnEncodingHelper::AppendTaggedBlob (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag, const T &data)
+EncodingHelper::AppendTaggedBlob (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag, const T &data)
 {
   return AppendTaggedBlob (start, dtag, reinterpret_cast<const uint8_t*> (&data), sizeof (data));
 }
 
+} // namespace ndn
 } // namespace ns3
 
 #endif // _NDN_ENCODING_HELPER_H_
diff --git a/helper/ndn-face-container.cc b/helper/ndn-face-container.cc
index 2e0ec33..888b9a8 100644
--- a/helper/ndn-face-container.cc
+++ b/helper/ndn-face-container.cc
@@ -25,18 +25,19 @@
 #include "ns3/ndn-face.h"
 
 namespace ns3 {
+namespace ndn {
 
-NdnFaceContainer::NdnFaceContainer ()
+FaceContainer::FaceContainer ()
 {
 }
 
-NdnFaceContainer::NdnFaceContainer (const NdnFaceContainer &other)
+FaceContainer::FaceContainer (const FaceContainer &other)
 {
   AddAll (other);
 }
 
-NdnFaceContainer&
-NdnFaceContainer::operator= (const NdnFaceContainer &other)
+FaceContainer&
+FaceContainer::operator= (const FaceContainer &other)
 {
   m_faces.clear ();
   AddAll (other);
@@ -46,38 +47,38 @@
 
   
 void
-NdnFaceContainer::AddAll (Ptr<NdnFaceContainer> other)
+FaceContainer::AddAll (Ptr<FaceContainer> other)
 {
   AddAll (*other);
 }
 
 void
-NdnFaceContainer::AddAll (const NdnFaceContainer &other)
+FaceContainer::AddAll (const FaceContainer &other)
 {
   m_faces.insert (m_faces.end (),
                   other.m_faces.begin (), other.m_faces.end ());
 }
 
-NdnFaceContainer::Iterator
-NdnFaceContainer::Begin (void) const
+FaceContainer::Iterator
+FaceContainer::Begin (void) const
 {
   return m_faces.begin ();
 }
 
-NdnFaceContainer::Iterator
-NdnFaceContainer::End (void) const
+FaceContainer::Iterator
+FaceContainer::End (void) const
 {
   return m_faces.end ();
 }
 
 uint32_t
-NdnFaceContainer::GetN (void) const
+FaceContainer::GetN (void) const
 {
   return m_faces.size ();
 }
 
 // void 
-// NdnFaceContainer::SetMetricToAll (uint16_t metric)
+// FaceContainer::SetMetricToAll (uint16_t metric)
 // {
 //   for (FaceContainer::iterator it=m_faces.begin ();
 //        it != m_faces.end ();
@@ -88,16 +89,16 @@
 // }
 
 void 
-NdnFaceContainer::Add (const Ptr<NdnFace> &face)
+FaceContainer::Add (const Ptr<Face> &face)
 {
   m_faces.push_back (face);
 }
 
-Ptr<NdnFace>
-NdnFaceContainer::Get (NdnFaceContainer::Iterator i) const
+Ptr<Face>
+FaceContainer::Get (FaceContainer::Iterator i) const
 {
   return *i;
 }
 
-
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-face-container.h b/helper/ndn-face-container.h
index e1fd4b2..692daf6 100644
--- a/helper/ndn-face-container.h
+++ b/helper/ndn-face-container.h
@@ -29,6 +29,7 @@
 #include "ns3/ndn-face.h"
 
 namespace ns3 {
+namespace ndn {
 
 /**
  * \ingroup ndn-helpers
@@ -39,47 +40,47 @@
  *
  * \see NdnStackHelper
  */
-class NdnFaceContainer : public SimpleRefCount<NdnFaceContainer>
+class FaceContainer : public SimpleRefCount<FaceContainer>
 {
 private:
-  typedef std::vector<Ptr<NdnFace> > FaceContainer;
+  typedef std::vector< Ptr<Face> > Container;
 public:
-  typedef FaceContainer::const_iterator Iterator; ///< \brief Iterator over NdnFaceContainer
+  typedef Container::const_iterator Iterator; ///< \brief Iterator over FaceContainer
 
   /**
-   * \brief Create an empty NdnFaceContainer.
+   * \brief Create an empty FaceContainer.
    */
-  NdnFaceContainer ();
+  FaceContainer ();
 
   /**
-   * \brief Copy constructor for NdnFaceContainer. Calls AddAll method
+   * \brief Copy constructor for FaceContainer. Calls AddAll method
    *
-   * \see NdnFaceContainer::AddAll
+   * \see FaceContainer::AddAll
    */
-  NdnFaceContainer (const NdnFaceContainer &other);
+  FaceContainer (const FaceContainer &other);
 
   /**
-   * \brief Copy operator for NdnFaceContainer. Empties vector and calls AddAll method
+   * \brief Copy operator for FaceContainer. Empties vector and calls AddAll method
    *
    * All previously obtained iterators (Begin() and End()) will be invalidated
    *
-   * \see NdnFaceContainer::AddAll
+   * \see FaceContainer::AddAll
    */
-  NdnFaceContainer& operator= (const NdnFaceContainer &other);
+  FaceContainer& operator= (const FaceContainer &other);
   
   /**
    * \brief Add all entries from other container
    *
    * \param other smart pointer to a container
    */
-  void AddAll (Ptr<NdnFaceContainer> other);
+  void AddAll (Ptr<FaceContainer> other);
 
   /**
    * \brief Add all entries from other container
    *
    * \param other container
    */
-  void AddAll (const NdnFaceContainer &other);
+  void AddAll (const FaceContainer &other);
 
   /**
    * \brief Get an iterator which refers to the first pair in the
@@ -114,27 +115,28 @@
   /**
    * Add an entry to the container
    *
-   * \param face a smart pointer to a NdnFace-derived object
+   * \param face a smart pointer to a Face-derived object
    *
-   * @see NdnFace
+   * @see Face
    */
-  void Add (const Ptr<NdnFace> &face);
+  void Add (const Ptr<Face> &face);
 
   /**
-   * Get a smart pointer to NdnFace-derived object stored in the container
+   * Get a smart pointer to Face-derived object stored in the container
    *
    * \param i the iterator corresponding to the requested object
    *
    * This method is redundant and simple dereferencing of the iterator should be used instead
    *
-   * @see NdnFace
+   * @see Face
    */
-  Ptr<NdnFace> Get (Iterator i) const;
+  Ptr<Face> Get (Iterator i) const;
 
 private:
-  FaceContainer m_faces;
+  Container m_faces;
 };
 
+} // namespace ndn
 } // namespace ns3
 
 #endif /* NDN_FACE_CONTAINER_H */
diff --git a/helper/ndn-global-routing-helper.cc b/helper/ndn-global-routing-helper.cc
index c3c9968..4ee8f58 100644
--- a/helper/ndn-global-routing-helper.cc
+++ b/helper/ndn-global-routing-helper.cc
@@ -20,7 +20,7 @@
 
 #include "ndn-global-routing-helper.h"
 
-#include "ns3/ndn.h"
+#include "ns3/ndn-l3-protocol.h"
 #include "../model/ndn-net-device-face.h"
 #include "../model/ndn-global-router.h"
 #include "ns3/ndn-name-components.h"
@@ -45,34 +45,35 @@
 
 #include "boost-graph-ndn-global-routing-helper.h"
 
-NS_LOG_COMPONENT_DEFINE ("NdnGlobalRoutingHelper");
+NS_LOG_COMPONENT_DEFINE ("ndn.GlobalRoutingHelper");
 
 using namespace std;
 using namespace boost;
 
 namespace ns3 {
+namespace ndn {
 
 void
-NdnGlobalRoutingHelper::Install (Ptr<Node> node)
+GlobalRoutingHelper::Install (Ptr<Node> node)
 {
   NS_LOG_LOGIC ("Node: " << node->GetId ());
   
-  Ptr<Ndn> ndn = node->GetObject<Ndn> ();
-  NS_ASSERT_MSG (ndn != 0, "Cannot install NdnGlobalRoutingHelper before Ndn is installed on a node");
+  Ptr<L3Protocol> ndn = node->GetObject<L3Protocol> ();
+  NS_ASSERT_MSG (ndn != 0, "Cannot install GlobalRoutingHelper before Ndn is installed on a node");
 
-  Ptr<NdnGlobalRouter> gr = node->GetObject<NdnGlobalRouter> ();
+  Ptr<GlobalRouter> gr = node->GetObject<GlobalRouter> ();
   if (gr != 0)
     {
-      NS_LOG_DEBUG ("NdnGlobalRouter is already installed: " << gr);
+      NS_LOG_DEBUG ("GlobalRouter is already installed: " << gr);
       return; // already installed
     }
   
-  gr = CreateObject<NdnGlobalRouter> ();
+  gr = CreateObject<GlobalRouter> ();
   node->AggregateObject (gr);
   
   for (uint32_t faceId = 0; faceId < ndn->GetNFaces (); faceId++)
     {
-      Ptr<NdnNetDeviceFace> face = DynamicCast<NdnNetDeviceFace> (ndn->GetFace (faceId));
+      Ptr<NetDeviceFace> face = DynamicCast<NetDeviceFace> (ndn->GetFace (faceId));
       if (face == 0)
 	{
 	  NS_LOG_DEBUG ("Skipping non-netdevice face");
@@ -82,7 +83,7 @@
       Ptr<NetDevice> nd = face->GetNetDevice ();
       if (nd == 0)
 	{
-	  NS_LOG_DEBUG ("Not a NetDevice associated with NdnNetDeviceFace");
+	  NS_LOG_DEBUG ("Not a NetDevice associated with NetDeviceFace");
 	  continue;
 	}
       
@@ -104,24 +105,24 @@
 	      Ptr<Node> otherNode = otherSide->GetNode ();
 	      NS_ASSERT (otherNode != 0);
 	      
-	      Ptr<NdnGlobalRouter> otherGr = otherNode->GetObject<NdnGlobalRouter> ();
+	      Ptr<GlobalRouter> otherGr = otherNode->GetObject<GlobalRouter> ();
 	      if (otherGr == 0)
 		{
 		  Install (otherNode);
 		}
-	      otherGr = otherNode->GetObject<NdnGlobalRouter> ();
+	      otherGr = otherNode->GetObject<GlobalRouter> ();
 	      NS_ASSERT (otherGr != 0);
 	      gr->AddIncidency (face, otherGr);
 	    }
 	}
       else
 	{
-	  Ptr<NdnGlobalRouter> grChannel = ch->GetObject<NdnGlobalRouter> ();
+	  Ptr<GlobalRouter> grChannel = ch->GetObject<GlobalRouter> ();
 	  if (grChannel == 0)
 	    {
 	      Install (ch);
 	    }
-	  grChannel = ch->GetObject<NdnGlobalRouter> ();
+	  grChannel = ch->GetObject<GlobalRouter> ();
 	  
 	  gr->AddIncidency (0, grChannel);
 	}
@@ -129,15 +130,15 @@
 }
 
 void
-NdnGlobalRoutingHelper::Install (Ptr<Channel> channel)
+GlobalRoutingHelper::Install (Ptr<Channel> channel)
 {
   NS_LOG_LOGIC ("Channel: " << channel->GetId ());
 
-  Ptr<NdnGlobalRouter> gr = channel->GetObject<NdnGlobalRouter> ();
+  Ptr<GlobalRouter> gr = channel->GetObject<GlobalRouter> ();
   if (gr != 0)
     return;
 
-  gr = CreateObject<NdnGlobalRouter> ();
+  gr = CreateObject<GlobalRouter> ();
   channel->AggregateObject (gr);
   
   for (uint32_t deviceId = 0; deviceId < channel->GetNDevices (); deviceId ++)
@@ -147,12 +148,12 @@
       Ptr<Node> node = dev->GetNode ();
       NS_ASSERT (node != 0);
 
-      Ptr<NdnGlobalRouter> grOther = node->GetObject<NdnGlobalRouter> ();
+      Ptr<GlobalRouter> grOther = node->GetObject<GlobalRouter> ();
       if (grOther == 0)
 	{
 	  Install (node);
 	}
-      grOther = node->GetObject<NdnGlobalRouter> ();
+      grOther = node->GetObject<GlobalRouter> ();
       NS_ASSERT (grOther != 0);
 
       gr->AddIncidency (0, grOther);
@@ -160,7 +161,7 @@
 }
 
 void
-NdnGlobalRoutingHelper::Install (const NodeContainer &nodes)
+GlobalRoutingHelper::Install (const NodeContainer &nodes)
 {
   for (NodeContainer::Iterator node = nodes.Begin ();
        node != nodes.End ();
@@ -171,25 +172,25 @@
 }
 
 void
-NdnGlobalRoutingHelper::InstallAll ()
+GlobalRoutingHelper::InstallAll ()
 {
   Install (NodeContainer::GetGlobal ());
 }
 
 
 void
-NdnGlobalRoutingHelper::AddOrigin (const std::string &prefix, Ptr<Node> node)
+GlobalRoutingHelper::AddOrigin (const std::string &prefix, Ptr<Node> node)
 {
-  Ptr<NdnGlobalRouter> gr = node->GetObject<NdnGlobalRouter> ();
+  Ptr<GlobalRouter> gr = node->GetObject<GlobalRouter> ();
   NS_ASSERT_MSG (gr != 0,
-		 "NdnGlobalRouter is not installed on the node");
+		 "GlobalRouter is not installed on the node");
 
-  Ptr<NdnNameComponents> name = Create<NdnNameComponents> (boost::lexical_cast<NdnNameComponents> (prefix));
+  Ptr<NameComponents> name = Create<NameComponents> (boost::lexical_cast<NameComponents> (prefix));
   gr->AddLocalPrefix (name);  
 }
 
 void
-NdnGlobalRoutingHelper::AddOrigins (const std::string &prefix, const NodeContainer &nodes)
+GlobalRoutingHelper::AddOrigins (const std::string &prefix, const NodeContainer &nodes)
 {
   for (NodeContainer::Iterator node = nodes.Begin ();
        node != nodes.End ();
@@ -200,7 +201,7 @@
 }
 
 void
-NdnGlobalRoutingHelper::AddOrigin (const std::string &prefix, const std::string &nodeName)
+GlobalRoutingHelper::AddOrigin (const std::string &prefix, const std::string &nodeName)
 {
   Ptr<Node> node = Names::Find<Node> (nodeName);
   NS_ASSERT_MSG (node != 0, nodeName << "is not a Node");
@@ -209,7 +210,7 @@
 }
 
 void
-NdnGlobalRoutingHelper::CalculateRoutes ()
+GlobalRoutingHelper::CalculateRoutes ()
 {
   /**
    * Implementation of route calculation is heavily based on Boost Graph Library
@@ -227,10 +228,10 @@
   // is not obviously how implement in an efficient manner
   for (NodeList::Iterator node = NodeList::Begin (); node != NodeList::End (); node++)
     {
-      Ptr<NdnGlobalRouter> source = (*node)->GetObject<NdnGlobalRouter> ();
+      Ptr<GlobalRouter> source = (*node)->GetObject<GlobalRouter> ();
       if (source == 0)
 	{
-	  NS_LOG_DEBUG ("Node " << (*node)->GetId () << " does not export NdnGlobalRouter interface");
+	  NS_LOG_DEBUG ("Node " << (*node)->GetId () << " does not export GlobalRouter interface");
 	  continue;
 	}
   
@@ -252,7 +253,7 @@
 
       // NS_LOG_DEBUG (predecessors.size () << ", " << distances.size ());
 
-      Ptr<NdnFib>  fib  = source->GetObject<NdnFib> ();
+      Ptr<Fib>  fib  = source->GetObject<Fib> ();
       fib->InvalidateAll ();
       NS_ASSERT (fib != 0);
       
@@ -275,7 +276,7 @@
 		// cout << " reachable via face " << *i->second.get<0> ()
 		//      << " with distance " << i->second.get<1> () << endl;
 
-		BOOST_FOREACH (const Ptr<const NdnNameComponents> &prefix, i->first->GetLocalPrefixes ())
+		BOOST_FOREACH (const Ptr<const NameComponents> &prefix, i->first->GetLocalPrefixes ())
 		  {
 		    fib->Add (prefix, i->second.get<0> (), i->second.get<1> ());
 		  }
@@ -286,4 +287,5 @@
 }
 
 
-}
+} // namespace ndn
+} // namespace ns3
diff --git a/helper/ndn-global-routing-helper.h b/helper/ndn-global-routing-helper.h
index ac92641..17493d2 100644
--- a/helper/ndn-global-routing-helper.h
+++ b/helper/ndn-global-routing-helper.h
@@ -29,36 +29,38 @@
 class NodeContainer;
 class Channel;
 
+namespace ndn {
+
 /**
  * @ingroup ndn
- * @brief Helper for NdnGlobalRouter interface
+ * @brief Helper for GlobalRouter interface
  */
-class NdnGlobalRoutingHelper
+class GlobalRoutingHelper
 {
 public:
   /**
-   * @brief Install NdnGlobalRouter interface on a node
+   * @brief Install GlobalRouter interface on a node
    *
-   * Note that NdnGlobalRouter will also be installed on all connected nodes and channels
+   * Note that GlobalRouter will also be installed on all connected nodes and channels
    *
-   * @param node Node to install NdnGlobalRouter interface
+   * @param node Node to install GlobalRouter interface
    */
   void
   Install (Ptr<Node> node);
 
   
   /**
-   * @brief Install NdnGlobalRouter interface on nodes
+   * @brief Install GlobalRouter interface on nodes
    *
-   * Note that NdnGlobalRouter will also be installed on all connected nodes and channels
+   * Note that GlobalRouter will also be installed on all connected nodes and channels
    *
-   * @param nodes NodeContainer to install NdnGlobalRouter interface
+   * @param nodes NodeContainer to install GlobalRouter interface
    */
   void
   Install (const NodeContainer &nodes);
 
   /**
-   * @brief Install NdnGlobalRouter interface on all nodes
+   * @brief Install GlobalRouter interface on all nodes
    */
   void
   InstallAll ();
@@ -98,6 +100,7 @@
   Install (Ptr<Channel> channel);
 };
 
-}
+} // namespace ndn
+} // namespace ns3
 
 #endif // NDN_GLOBAL_ROUTING_HELPER_H
diff --git a/helper/ndn-header-helper.cc b/helper/ndn-header-helper.cc
index 58f8dde..8121764 100644
--- a/helper/ndn-header-helper.cc
+++ b/helper/ndn-header-helper.cc
@@ -29,32 +29,39 @@
 #include "ns3/ndn-content-object-header.h"
 #include <iomanip>
 
-NS_LOG_COMPONENT_DEFINE ("NdnHeaderHelper");
+NS_LOG_COMPONENT_DEFINE ("ndn.HeaderHelper");
+
+#define INTEREST_BYTE0 0x01
+#define INTEREST_BYTE1 0xD2
+
+#define CONTENT_OBJECT_BYTE0 0x04
+#define CONTENT_OBJECT_BYTE1 0x82
 
 
-namespace ns3
-{
+namespace ns3 {
+namespace ndn {
 
-NdnHeaderHelper::Type
-NdnHeaderHelper::GetNdnHeaderType (Ptr<const Packet> packet)
+HeaderHelper::Type
+HeaderHelper::GetNdnHeaderType (Ptr<const Packet> packet)
 {
   uint8_t type[2];
   uint32_t read=packet->CopyData (type,2);
 
-  if (read!=2) throw NdnUnknownHeaderException();
+  if (read!=2) throw UnknownHeaderException();
 
   NS_LOG_DEBUG (*packet);
   if (type[0] == INTEREST_BYTE0 && type[1] == INTEREST_BYTE1)
     {
-      return NdnHeaderHelper::INTEREST;
+      return HeaderHelper::INTEREST;
     }
   else if (type[0] == CONTENT_OBJECT_BYTE0 && type[1] == CONTENT_OBJECT_BYTE1)
     {
-      return NdnHeaderHelper::CONTENT_OBJECT;
+      return HeaderHelper::CONTENT_OBJECT;
     }
 
   NS_LOG_DEBUG (*packet);
-  throw NdnUnknownHeaderException();
+  throw UnknownHeaderException();
 }
 
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-header-helper.h b/helper/ndn-header-helper.h
index 7f2e111..47d8ed4 100644
--- a/helper/ndn-header-helper.h
+++ b/helper/ndn-header-helper.h
@@ -23,18 +23,13 @@
 
 #include "ns3/ptr.h"
 
-#define INTEREST_BYTE0 0x01
-#define INTEREST_BYTE1 0xD2
-
-#define CONTENT_OBJECT_BYTE0 0x04
-#define CONTENT_OBJECT_BYTE1 0x82
-
-namespace ns3
-{
+namespace ns3 {
 
 class Header;
 class Packet;
 
+namespace ndn {
+
 /**
  * \ingroup ndn-helpers
  *
@@ -43,11 +38,11 @@
  *
  * Ndn doesn't really have a header, so we need this class to
  * determine type of Ndn packet and return corresponent header class,
- * NdnInterestHeader or NdnContentObjectHeader
+ * InterestHeader or ContentObjectHeader
  *
- * Throws NdnUnknownHeaderException if header type couldn't be determined
+ * Throws UnknownHeaderException if header type couldn't be determined
  */
-class NdnHeaderHelper
+class HeaderHelper
 {
 public:
   /**
@@ -89,8 +84,9 @@
    * \brief Exception thrown if Ndn stack receives unrecognized
    * message type
    */
-class NdnUnknownHeaderException {};
+class UnknownHeaderException {};
 
+} // namespace ndn
 } // namespace ns3
 
 #endif // _NDN_HEADER_HELPER_H_
diff --git a/helper/ndn-stack-helper.cc b/helper/ndn-stack-helper.cc
index 6b0a022..d88eeb2 100644
--- a/helper/ndn-stack-helper.cc
+++ b/helper/ndn-stack-helper.cc
@@ -56,30 +56,31 @@
 #include <boost/foreach.hpp>
 #include <boost/lexical_cast.hpp>
 
-NS_LOG_COMPONENT_DEFINE ("NdnStackHelper");
+NS_LOG_COMPONENT_DEFINE ("ndn.StackHelper");
 
 namespace ns3 {
+namespace ndn {
     
-NdnStackHelper::NdnStackHelper ()
+StackHelper::StackHelper ()
   : m_limitsEnabled (false)
   , m_needSetDefaultRoutes (false)
 {
-  m_ndnFactory.        SetTypeId ("ns3::NdnL3Protocol");
-  m_strategyFactory.    SetTypeId ("ns3::ndnSIM::Flooding");
-  m_contentStoreFactory.SetTypeId ("ns3::NdnContentStoreLru");
-  m_fibFactory.         SetTypeId ("ns3::NdnFib");
-  m_pitFactory.         SetTypeId ("ns3::NdnPit");
+  m_ndnFactory.         SetTypeId ("ns3::ndn::L3Protocol");
+  m_strategyFactory.    SetTypeId ("ns3::ndn::fw::Flooding");
+  m_contentStoreFactory.SetTypeId ("ns3::ndn::cs::Lru");
+  m_fibFactory.         SetTypeId ("ns3::ndn::fib::Default");
+  m_pitFactory.         SetTypeId ("ns3::ndn::pit::Persistent");
 }
     
-NdnStackHelper::~NdnStackHelper ()
+StackHelper::~StackHelper ()
 {
 }
 
 void
-NdnStackHelper::SetNdnAttributes (const std::string &attr1, const std::string &value1,
-                                    const std::string &attr2, const std::string &value2,
-                                    const std::string &attr3, const std::string &value3,
-                                    const std::string &attr4, const std::string &value4)
+StackHelper::SetStackAttributes (const std::string &attr1, const std::string &value1,
+                                 const std::string &attr2, const std::string &value2,
+                                 const std::string &attr3, const std::string &value3,
+                                 const std::string &attr4, const std::string &value4)
 {
   if (attr1 != "")
       m_ndnFactory.Set (attr1, StringValue (value1));
@@ -92,7 +93,7 @@
 }
 
 void 
-NdnStackHelper::SetForwardingStrategy (const std::string &strategy,
+StackHelper::SetForwardingStrategy (const std::string &strategy,
                                         const std::string &attr1, const std::string &value1,
                                         const std::string &attr2, const std::string &value2,
                                         const std::string &attr3, const std::string &value3,
@@ -110,7 +111,7 @@
 }
 
 void
-NdnStackHelper::SetContentStore (const std::string &contentStore,
+StackHelper::SetContentStore (const std::string &contentStore,
                                   const std::string &attr1, const std::string &value1,
                                   const std::string &attr2, const std::string &value2,
                                   const std::string &attr3, const std::string &value3,
@@ -128,7 +129,7 @@
 }
 
 void
-NdnStackHelper::SetPit (const std::string &pitClass,
+StackHelper::SetPit (const std::string &pitClass,
                          const std::string &attr1, const std::string &value1,
                          const std::string &attr2, const std::string &value2,
                          const std::string &attr3, const std::string &value3,
@@ -146,7 +147,7 @@
 }
 
 void
-NdnStackHelper::SetFib (const std::string &fibClass,
+StackHelper::SetFib (const std::string &fibClass,
                          const std::string &attr1, const std::string &value1,
                          const std::string &attr2, const std::string &value2,
                          const std::string &attr3, const std::string &value3,
@@ -164,14 +165,14 @@
 }
 
 void
-NdnStackHelper::SetDefaultRoutes (bool needSet)
+StackHelper::SetDefaultRoutes (bool needSet)
 {
   NS_LOG_FUNCTION (this << needSet);
   m_needSetDefaultRoutes = needSet;
 }
 
 void
-NdnStackHelper::EnableLimits (bool enable/* = true*/,
+StackHelper::EnableLimits (bool enable/* = true*/,
                                Time avgRtt/*=Seconds(0.1)*/,
                                uint32_t avgContentObject/*=1100*/,
                                uint32_t avgInterest/*=40*/)
@@ -183,10 +184,10 @@
   m_avgInterestSize = avgInterest;
 }
 
-Ptr<NdnFaceContainer>
-NdnStackHelper::Install (NodeContainer c) const
+Ptr<FaceContainer>
+StackHelper::Install (NodeContainer c) const
 {
-  Ptr<NdnFaceContainer> faces = Create<NdnFaceContainer> ();
+  Ptr<FaceContainer> faces = Create<FaceContainer> ();
   for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
     {
       faces->AddAll (Install (*i));
@@ -194,42 +195,42 @@
   return faces;
 }
 
-Ptr<NdnFaceContainer>
-NdnStackHelper::InstallAll (void) const
+Ptr<FaceContainer>
+StackHelper::InstallAll (void) const
 {
   return Install (NodeContainer::GetGlobal ());
 }
 
-Ptr<NdnFaceContainer>
-NdnStackHelper::Install (Ptr<Node> node) const
+Ptr<FaceContainer>
+StackHelper::Install (Ptr<Node> node) const
 {
   // NS_ASSERT_MSG (m_forwarding, "SetForwardingHelper() should be set prior calling Install() method");
-  Ptr<NdnFaceContainer> faces = Create<NdnFaceContainer> ();
+  Ptr<FaceContainer> faces = Create<FaceContainer> ();
   
-  if (node->GetObject<Ndn> () != 0)
+  if (node->GetObject<L3Protocol> () != 0)
     {
-      NS_FATAL_ERROR ("NdnStackHelper::Install (): Installing " 
+      NS_FATAL_ERROR ("StackHelper::Install (): Installing " 
                       "a NdnStack to a node with an existing Ndn object");
       return 0;
     }
 
-  // Create NdnL3Protocol
-  Ptr<Ndn> ndn = m_ndnFactory.Create<Ndn> ();
+  // Create L3Protocol
+  Ptr<L3Protocol> ndn = m_ndnFactory.Create<L3Protocol> ();
 
   // Create and aggregate FIB
-  Ptr<NdnFib> fib = m_fibFactory.Create<NdnFib> ();
+  Ptr<Fib> fib = m_fibFactory.Create<Fib> ();
   ndn->AggregateObject (fib);
 
   // Create and aggregate PIT
-  ndn->AggregateObject (m_pitFactory.Create<NdnPit> ());
+  ndn->AggregateObject (m_pitFactory.Create<Pit> ());
   
   // Create and aggregate forwarding strategy
-  ndn->AggregateObject (m_strategyFactory.Create<NdnForwardingStrategy> ());
+  ndn->AggregateObject (m_strategyFactory.Create<ForwardingStrategy> ());
 
   // Create and aggregate content store
-  ndn->AggregateObject (m_contentStoreFactory.Create<NdnContentStore> ());
+  ndn->AggregateObject (m_contentStoreFactory.Create<ContentStore> ());
 
-  // Aggregate NdnL3Protocol on node
+  // Aggregate L3Protocol on node
   node->AggregateObject (ndn);
   
   for (uint32_t index=0; index < node->GetNDevices (); index++)
@@ -240,10 +241,10 @@
       // if (DynamicCast<LoopbackNetDevice> (device) != 0)
       //   continue; // don't create face for a LoopbackNetDevice
 
-      Ptr<NdnNetDeviceFace> face = CreateObject<NdnNetDeviceFace> (node, device);
+      Ptr<NetDeviceFace> face = CreateObject<NetDeviceFace> (node, device);
 
       ndn->AddFace (face);
-      NS_LOG_LOGIC ("Node " << node->GetId () << ": added NdnNetDeviceFace as face #" << *face);
+      NS_LOG_LOGIC ("Node " << node->GetId () << ": added NetDeviceFace as face #" << *face);
 
       if (m_needSetDefaultRoutes)
         {
@@ -282,8 +283,8 @@
   return faces;
 }
 
-Ptr<NdnFaceContainer>
-NdnStackHelper::Install (std::string nodeName) const
+Ptr<FaceContainer>
+StackHelper::Install (std::string nodeName) const
 {
   Ptr<Node> node = Names::Find<Node> (nodeName);
   return Install (node);
@@ -291,43 +292,43 @@
 
 
 void
-NdnStackHelper::AddRoute (Ptr<Node> node, std::string prefix, Ptr<NdnFace> face, int32_t metric)
+StackHelper::AddRoute (Ptr<Node> node, std::string prefix, Ptr<Face> face, int32_t metric)
 {
   NS_LOG_LOGIC ("[" << node->GetId () << "]$ route add " << prefix << " via " << *face << " metric " << metric);
 
-  Ptr<NdnFib>  fib  = node->GetObject<NdnFib> ();
+  Ptr<Fib>  fib  = node->GetObject<Fib> ();
 
-  NdnNameComponentsValue prefixValue;
-  prefixValue.DeserializeFromString (prefix, MakeNdnNameComponentsChecker ());
+  NameComponentsValue prefixValue;
+  prefixValue.DeserializeFromString (prefix, MakeNameComponentsChecker ());
   fib->Add (prefixValue.Get (), face, metric);
 }
 
 void
-NdnStackHelper::AddRoute (Ptr<Node> node, std::string prefix, uint32_t faceId, int32_t metric)
+StackHelper::AddRoute (Ptr<Node> node, std::string prefix, uint32_t faceId, int32_t metric)
 {
-  Ptr<Ndn>     ndn = node->GetObject<Ndn> ();
+  Ptr<L3Protocol>     ndn = node->GetObject<L3Protocol> ();
   NS_ASSERT_MSG (ndn != 0, "Ndn stack should be installed on the node");
 
-  Ptr<NdnFace> face = ndn->GetFace (faceId);
+  Ptr<Face> face = ndn->GetFace (faceId);
   NS_ASSERT_MSG (face != 0, "Face with ID [" << faceId << "] does not exist on node [" << node->GetId () << "]");
 
   AddRoute (node, prefix, face, metric);
 }
 
 void
-NdnStackHelper::AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric)
+StackHelper::AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric)
 {
   Ptr<Node> node = Names::Find<Node> (nodeName);
   NS_ASSERT_MSG (node != 0, "Node [" << nodeName << "] does not exist");
   
-  Ptr<Ndn>     ndn = node->GetObject<Ndn> ();
+  Ptr<L3Protocol>     ndn = node->GetObject<L3Protocol> ();
   NS_ASSERT_MSG (ndn != 0, "Ndn stack should be installed on the node");
 
-  Ptr<NdnFace> face = ndn->GetFace (faceId);
+  Ptr<Face> face = ndn->GetFace (faceId);
   NS_ASSERT_MSG (face != 0, "Face with ID [" << faceId << "] does not exist on node [" << nodeName << "]");
 
   AddRoute (node, prefix, face, metric);
 }
 
-
+} // namespace ndn
 } // namespace ns3
diff --git a/helper/ndn-stack-helper.h b/helper/ndn-stack-helper.h
index 0bd69ad..3b7e3cf 100644
--- a/helper/ndn-stack-helper.h
+++ b/helper/ndn-stack-helper.h
@@ -30,8 +30,11 @@
 namespace ns3 {
 
 class Node;
-class NdnFaceContainer;
-class NdnFace;
+
+namespace ndn {
+
+class FaceContainer;
+class Face;
 
 /**
  * \ingroup ndn
@@ -54,27 +57,27 @@
  * attribute or a set of functionality that may be of interest to many other
  * classes.
  */
-class NdnStackHelper 
+class StackHelper 
 {
 public:
   /**
    * \brief Create a new NdnStackHelper with a default NDN_FLOODING forwarding stategy
    */
-  NdnStackHelper();
+  StackHelper();
   
   /**
    * \brief Destroy the NdnStackHelper
    */
-  virtual ~NdnStackHelper ();
+  virtual ~StackHelper ();
 
   /**
    * @brief Set parameters of NdnL3Protocol
    */
   void
-  SetNdnAttributes (const std::string &attr1 = "", const std::string &value1 = "",
-                     const std::string &attr2 = "", const std::string &value2 = "",
-                     const std::string &attr3 = "", const std::string &value3 = "",
-                     const std::string &attr4 = "", const std::string &value4 = "");
+  SetStackAttributes (const std::string &attr1 = "", const std::string &value1 = "",
+                      const std::string &attr2 = "", const std::string &value2 = "",
+                      const std::string &attr3 = "", const std::string &value3 = "",
+                      const std::string &attr4 = "", const std::string &value4 = "");
   
   
   /**
@@ -147,7 +150,7 @@
    * \returns list of installed faces in the form of a smart pointer
    * to NdnFaceContainer object
    */
-  Ptr<NdnFaceContainer>
+  Ptr<FaceContainer>
   Install (std::string nodeName) const;
 
   /**
@@ -159,9 +162,9 @@
    * \param node The node on which to install the stack.
    *
    * \returns list of installed faces in the form of a smart pointer
-   * to NdnFaceContainer object
+   * to FaceContainer object
    */
-  Ptr<NdnFaceContainer>
+  Ptr<FaceContainer>
   Install (Ptr<Node> node) const;
 
   /**
@@ -174,18 +177,18 @@
    * new stacks.
    *
    * \returns list of installed faces in the form of a smart pointer
-   * to NdnFaceContainer object
+   * to FaceContainer object
    */
-  Ptr<NdnFaceContainer>
+  Ptr<FaceContainer>
   Install (NodeContainer c) const;
 
   /**
    * \brief Install Ndn stack on all nodes in the simulation
    *
    * \returns list of installed faces in the form of a smart pointer
-   * to NdnFaceContainer object
+   * to FaceContainer object
    */
-  Ptr<NdnFaceContainer>
+  Ptr<FaceContainer>
   InstallAll () const;
 
   /**
@@ -219,7 +222,7 @@
    * \param metric Routing metric
    */
   static void
-  AddRoute (Ptr<Node> node, std::string prefix, Ptr<NdnFace> face, int32_t metric);
+  AddRoute (Ptr<Node> node, std::string prefix, Ptr<Face> face, int32_t metric);
 
   /**
    * \brief Set flag indicating necessity to install default routes in FIB
@@ -228,8 +231,8 @@
   SetDefaultRoutes (bool needSet);
 
 private:
-  NdnStackHelper (const NdnStackHelper &);
-  NdnStackHelper &operator = (const NdnStackHelper &o);
+  StackHelper (const StackHelper &);
+  StackHelper &operator = (const StackHelper &o);
   
 private:
   ObjectFactory m_ndnFactory;
@@ -245,6 +248,7 @@
   bool m_needSetDefaultRoutes;  
 };
 
+} // namespace ndn
 } // namespace ns3
 
 #endif /* NDN_STACK_HELPER_H */