Make everything compile
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
index 3fe986e..397e940 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
@@ -19,6 +19,7 @@
  */
 
 #include "ccnb-parser-attr.h"
+#include "ns3/ccnb-parser-common.h"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -33,7 +34,7 @@
     }
   m_value = DynamicCast<Udata> (Block::ParseBlock (start));
   if (m_value == 0)
-    throw CcnxDecodingException (); // "ATTR must be followed by UDATA field"
+    throw CcnbDecodingException (); // "ATTR must be followed by UDATA field"
 }
 
 }
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h
index 7864459..1b7d5e8 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.h
@@ -46,10 +46,10 @@
    */
   Attr (Buffer::Iterator &start, uint32_t length);
   
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   std::string m_attr; ///< field holding name of the attribute
 };
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h
index f83f77e..9b20073 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-base-attr.h
@@ -21,7 +21,6 @@
 #ifndef _CCNB_PARSER_BASE_ATTR_H_
 #define _CCNB_PARSER_BASE_ATTR_H_
 
-#include "ccnb-parser-block.h"
 #include "ccnb-parser-udata.h"
 
 namespace ns3 {
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h
index bfd1f5b..6b7fe76 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-base-tag.h
@@ -47,5 +47,8 @@
   BaseTag() { }
 };
 
+}
+}
+
 #endif // _CCNB_PARSER_BASE_TAG_H_
 
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h
index 1693fbe..4b22d62 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.h
@@ -18,10 +18,11 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#ifndef _CCNB_PARSER_BLOCK_H_
-#define _CCNB_PARSER_BLOCK_H_
+#ifndef _CCNB_PARSER_BLOB_H_
+#define _CCNB_PARSER_BLOB_H_
 
 #include "ccnb-parser-block.h"
+#include "ns3/buffer.h"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -45,10 +46,10 @@
    */
   Blob (Buffer::Iterator &start, uint32_t length);
   
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   Buffer m_blob; ///< \brief field holding a parsed BLOB value of the block
 };
@@ -56,4 +57,4 @@
 }
 }
 
-#endif // _CCNB_PARSER_BLOCK_H_
+#endif // _CCNB_PARSER_BLOB_H_
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc
index 81d137f..e1e09fd 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.cc
@@ -19,7 +19,14 @@
  */
 
 #include "ccnb-parser-block.h"
-#include "ns3/ccnb-parser-common.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"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -61,7 +68,7 @@
     case CCN_EXT:
       return Create<Ext> (start, value);
     default:
-      throw CcnxDecodingException ();
+      throw CcnbDecodingException ();
     }
 }
 
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
index 6cbb6b3..1ff614b 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
@@ -56,10 +56,10 @@
   static Ptr<Block>
   ParseBlock (Buffer::Iterator &start);
   
-  virtual void accept (VoidNoArguVisitor &v )               =0; ///< \brief Method to dispatch VoidNoArguVisitor
-  virtual void accept (VoidVisitor &v, boost::any param)    =0; ///< \brief Method to dispatch VoidVisitor
-  virtual boost::any accept (NoArguVisitor &v )             =0; ///< \brief Method to dispatch NoArguVisitor 
-  virtual boost::any accept (Visitor &v, boost::any param ) =0; ///< \brief Method to dispatch Visitor
+  virtual void accept( VoidNoArguVisitor &v )               = 0;
+  virtual void accept( VoidVisitor &v, boost::any param )   = 0;
+  virtual boost::any accept( NoArguVisitor &v )             = 0;
+  virtual boost::any accept( Visitor &v, boost::any param ) = 0;
 };
 
 }
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc
index b8ef685..bb6be82 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.cc
@@ -29,7 +29,7 @@
   m_dattr = dattr;
   m_value = DynamicCast<Udata> (Block::ParseBlock (start));
   if (m_value == 0)
-    throw CcnxDecodingException (); // "ATTR must be followed by UDATA field"
+    throw CcnbDecodingException (); // "ATTR must be followed by UDATA field"
 }
 
 }
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h
index 42de5f6..6775017 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-dattr.h
@@ -45,10 +45,10 @@
    */
   Dattr (Buffer::Iterator &start, uint32_t dattr);
 
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   uint32_t m_dattr; ///< \brief Dictionary code of DATTR
 };
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
index 0cfe4bd..8d9ecf7 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.cc
@@ -19,7 +19,9 @@
  */
 
 #include "ccnb-parser-dtag.h"
-#include "ns3/ccnb-parser-common.h"
+
+#include "ccnb-parser-base-attr.h"
+#include "ccnb-parser-base-tag.h"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -35,7 +37,7 @@
    * content (including virtual payload) will be stored in Packet
    * buffer
    */
-  if (dtag == Ccnx::CCN_DTAG_Content)
+  if (dtag == CCN_DTAG_Content)
     return; // hack #1. Do not process nesting block for <Content>
   
   // parse attributes until first nested block reached
@@ -55,17 +57,17 @@
   while (!start.IsEnd () && start.PeekU8 ()!=CCN_CLOSE)
     {
       // hack #2. Stop processing nested blocks if last block was <Content>
-      if (m_dtag == Ccnx::CCN_DTAG_ContentObject && // we are in <ContentObject>
-          DynamicCast<Dtag> (m_nestedBlocks.back())!=0 && // last block is DTAG
-          DynamicCast<Dtag> (m_nestedBlocks.back())->m_dtag == CCN_DTAG_Content) 
+      if (m_dtag == CCN_DTAG_ContentObject && // we are in <ContentObject>
+          DynamicCast<Dtag> (m_nestedTags.back())!=0 && // last block is DTAG
+          DynamicCast<Dtag> (m_nestedTags.back())->m_dtag == CCN_DTAG_Content) 
         {
           return; 
         }
 
-      m_nestedBlocks.push_back (Block::ParseBlock (start));
+      m_nestedTags.push_back (Block::ParseBlock (start));
     }
   if (start.IsEnd ())
-      throw CcnxDecodingException ();
+      throw CcnbDecodingException ();
 
   start.ReadU8 (); // read CCN_CLOSE
 }
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h
index 65a84f5..1ff75e3 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-dtag.h
@@ -50,10 +50,10 @@
    */
   Dtag (Buffer::Iterator &start, uint32_t dtag);
 
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   uint32_t m_dtag; ///< \brief Dictionary code for DTAG
 };
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h
index 9a2f2c8..568706b 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-ext.h
@@ -21,7 +21,7 @@
 #ifndef _CCNB_PARSER_EXT_H_
 #define _CCNB_PARSER_EXT_H_
 
-#include "ccnb-parser-ext.h"
+#include "ccnb-parser-block.h"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -45,10 +45,10 @@
    */
   Ext (Buffer::Iterator &start, uint32_t extSubtype);
 
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   uint64_t m_extSubtype; ///< \brief Extension type
 };
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
index f045d55..c288be9 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.cc
@@ -19,7 +19,8 @@
  */
 
 #include "ccnb-parser-tag.h"
-#include "ns3/ccnb-parser-common.h"
+
+#include "ccnb-parser-base-attr.h"
 
 namespace ns3 {
 namespace CcnbParser {
@@ -53,7 +54,7 @@
     }
   
   if (start.IsEnd ()) //should not be the end
-      throw CcnxDecodingException ();
+      throw CcnbDecodingException ();
 
   start.ReadU8 (); // read CCN_CLOSE
 }
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h
index aea0bcc..c80581d 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-tag.h
@@ -46,10 +46,10 @@
    */
   Tag (Buffer::Iterator &start, uint32_t length);
 
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   std::string m_tag; ///< \brief Name of TAG block
 };
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h
index c75fc9d..b6ef2c2 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-udata.h
@@ -44,10 +44,10 @@
    */
   Udata (Buffer::Iterator &start, uint32_t length);
   
-  virtual void accept( Visitor &v )                           { v.visit( *this ); }
-  virtual void accept( GJVoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
-  virtual boost::any accept( GJNoArguVisitor &v )             { return v.visit( *this ); }
-  virtual boost::any accept( GJVisitor &v, boost::any param ) { return v.visit( *this, param ); }
+  virtual void accept( VoidNoArguVisitor &v )               { v.visit( *this ); }
+  virtual void accept( VoidVisitor &v, boost::any param )   { v.visit( *this, param ); }
+  virtual boost::any accept( NoArguVisitor &v )             { return v.visit( *this ); }
+  virtual boost::any accept( Visitor &v, boost::any param ) { return v.visit( *this, param ); }
 
   std::string m_udata; ///< \brief field holding a parsed UDATA value of the block
 };