Resolve compilation issues (more accurate with headers)
diff --git a/apps/ccnx-app.cc b/apps/ccnx-app.cc
index afdf9de..40c1168 100644
--- a/apps/ccnx-app.cc
+++ b/apps/ccnx-app.cc
@@ -27,7 +27,7 @@
 #include "ns3/ccnx-content-object-header.h"
 #include "ns3/ccnx.h"
 #include "ns3/ccnx-fib.h"
-#include "ns3/ccnx-local-face.h"
+#include "../model/ccnx-local-face.h"
 
 NS_LOG_COMPONENT_DEFINE ("CcnxApp");
 
diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index 27891b1..7e541ec 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -29,7 +29,7 @@
 #include "ns3/uinteger.h"
 
 #include "ns3/ccnx.h"
-#include "ns3/ccnx-local-face.h"
+#include "../model/ccnx-local-face.h"
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
 
diff --git a/apps/ccnx-producer.cc b/apps/ccnx-producer.cc
index 844acd4..ba2918d 100644
--- a/apps/ccnx-producer.cc
+++ b/apps/ccnx-producer.cc
@@ -27,7 +27,7 @@
 #include "ns3/uinteger.h"
 #include "ns3/packet.h"
 
-#include "ns3/ccnx-local-face.h"
+#include "../model/ccnx-local-face.h"
 #include "ns3/ccnx-fib.h"
 
 #include <boost/ref.hpp>
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
index e4baf54..bdc1f0a 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-attr.cc
@@ -19,7 +19,7 @@
  */
 
 #include "ccnb-parser-attr.h"
-#include "ns3/ccnb-parser-common.h"
+#include "../ccnb-parser-common.h"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc b/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc
index 690f30d..159643f 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-blob.cc
@@ -18,7 +18,7 @@
  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
  */
 
-#include "ns3/ccnb-parser-blob.h"
+#include "ccnb-parser-blob.h"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
index a188597..fe098ad 100644
--- a/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
+++ b/helper/ccnb-parser/syntax-tree/ccnb-parser-block.h
@@ -26,10 +26,10 @@
 #include "ns3/ptr.h"
 
 // visitors
-#include "ns3/ccnb-parser-void-no-argu-visitor.h"
-#include "ns3/ccnb-parser-void-visitor.h"
-#include "ns3/ccnb-parser-no-argu-visitor.h"
-#include "ns3/ccnb-parser-visitor.h"
+#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"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-content-object-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-content-object-visitor.cc
index d562695..4325e67 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-content-object-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-content-object-visitor.cc
@@ -21,8 +21,9 @@
 #include "ccnb-parser-content-object-visitor.h"
 #include "ccnb-parser-name-components-visitor.h"
 
-#include "ns3/ccnb-parser-block.h"
-#include "ns3/ccnb-parser-dtag.h"
+#include "../syntax-tree/ccnb-parser-block.h"
+#include "../syntax-tree/ccnb-parser-dtag.h"
+
 #include "ns3/ccnx-name-components.h"
 #include "ns3/assert.h"
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc
index 514f444..9a89c19 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-depth-first-visitor.cc
@@ -20,13 +20,13 @@
 
 #include "ccnb-parser-depth-first-visitor.h"
 
-#include "ns3/ccnb-parser-blob.h"
-#include "ns3/ccnb-parser-udata.h"
-#include "ns3/ccnb-parser-tag.h"
-#include "ns3/ccnb-parser-dtag.h"
-#include "ns3/ccnb-parser-attr.h"
-#include "ns3/ccnb-parser-dattr.h"
-#include "ns3/ccnb-parser-ext.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 <boost/foreach.hpp>
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc
index c436923..b7ccaba 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-interest-visitor.cc
@@ -20,9 +20,11 @@
 
 #include "ccnb-parser-interest-visitor.h"
 
-#include "ns3/ccnb-parser-block.h"
-#include "ns3/ccnb-parser-dtag.h"
+#include "../syntax-tree/ccnb-parser-block.h"
+#include "../syntax-tree/ccnb-parser-dtag.h"
+
 #include "ns3/ccnx-name-components.h"
+
 #include "ns3/assert.h"
 #include "ns3/nstime.h"
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc
index 314cb68..80e49eb 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-name-components-visitor.cc
@@ -21,7 +21,7 @@
 #include "ccnb-parser-name-components-visitor.h"
 
 #include "ccnb-parser-string-visitor.h"
-#include "ns3/ccnb-parser-dtag.h"
+#include "../syntax-tree/ccnb-parser-dtag.h"
 #include "ns3/ccnx-name-components.h"
 
 namespace ns3 {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc
index f81a350..12264fd 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-no-argu-depth-first-visitor.cc
@@ -20,13 +20,13 @@
 
 #include "ccnb-parser-no-argu-depth-first-visitor.h"
 
-#include "ns3/ccnb-parser-blob.h"
-#include "ns3/ccnb-parser-udata.h"
-#include "ns3/ccnb-parser-tag.h"
-#include "ns3/ccnb-parser-dtag.h"
-#include "ns3/ccnb-parser-attr.h"
-#include "ns3/ccnb-parser-dattr.h"
-#include "ns3/ccnb-parser-ext.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 <boost/foreach.hpp>
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h b/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h
index ce3e712..95be166 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h
+++ b/helper/ccnb-parser/visitors/ccnb-parser-no-argu-visitor.h
@@ -21,7 +21,7 @@
 #ifndef _CCNB_PARSER_NO_ARGU_VISITOR_H_
 #define _CCNB_PARSER_NO_ARGU_VISITOR_H_
 
-#include "ns3/ccnb-parser-common.h"
+#include "../ccnb-parser-common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc
index e393770..a9aed41 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-non-negative-integer-visitor.cc
@@ -20,8 +20,8 @@
 
 #include "ccnb-parser-non-negative-integer-visitor.h"
 
-#include "ns3/ccnb-parser-blob.h"
-#include "ns3/ccnb-parser-udata.h"
+#include "../syntax-tree/ccnb-parser-blob.h"
+#include "../syntax-tree/ccnb-parser-udata.h"
 #include <sstream>
 
 namespace ns3 {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-nonce-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-nonce-visitor.cc
index 931f2fa..0102b0a 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-nonce-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-nonce-visitor.cc
@@ -19,7 +19,7 @@
  */
 
 #include "ccnb-parser-nonce-visitor.h"
-#include "ns3/ccnb-parser-blob.h"
+#include "../syntax-tree/ccnb-parser-blob.h"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc
index dfc61ed..6fb5e6b 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-string-visitor.cc
@@ -19,8 +19,8 @@
  */
 
 #include "ccnb-parser-string-visitor.h"
-#include "ns3/ccnb-parser-udata.h"
-#include "ns3/ccnb-parser-blob.h"
+#include "../syntax-tree/ccnb-parser-udata.h"
+#include "../syntax-tree/ccnb-parser-blob.h"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc
index ea4ab00..4569bb9 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-timestamp-visitor.cc
@@ -19,7 +19,7 @@
  */
 
 #include "ccnb-parser-timestamp-visitor.h"
-#include "ns3/ccnb-parser-blob.h"
+#include "../syntax-tree/ccnb-parser-blob.h"
 
 #include "ns3/nstime.h"
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-visitor.h b/helper/ccnb-parser/visitors/ccnb-parser-visitor.h
index e0fac3a..bc858eb 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-visitor.h
+++ b/helper/ccnb-parser/visitors/ccnb-parser-visitor.h
@@ -21,7 +21,7 @@
 #ifndef _CCNB_PARSER_VISITOR_H_
 #define _CCNB_PARSER_VISITOR_H_
 
-#include "ns3/ccnb-parser-common.h"
+#include "../ccnb-parser-common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc
index 1c9a28a..05218b5 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-void-depth-first-visitor.cc
@@ -20,13 +20,13 @@
 
 #include "ccnb-parser-void-depth-first-visitor.h"
 
-#include "ns3/ccnb-parser-blob.h"
-#include "ns3/ccnb-parser-udata.h"
-#include "ns3/ccnb-parser-tag.h"
-#include "ns3/ccnb-parser-dtag.h"
-#include "ns3/ccnb-parser-attr.h"
-#include "ns3/ccnb-parser-dattr.h"
-#include "ns3/ccnb-parser-ext.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 <boost/foreach.hpp>
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc b/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc
index 1944b2a..15519f2 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc
+++ b/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-depth-first-visitor.cc
@@ -20,13 +20,13 @@
 
 #include "ccnb-parser-void-no-argu-depth-first-visitor.h"
 
-#include "ns3/ccnb-parser-blob.h"
-#include "ns3/ccnb-parser-udata.h"
-#include "ns3/ccnb-parser-tag.h"
-#include "ns3/ccnb-parser-dtag.h"
-#include "ns3/ccnb-parser-attr.h"
-#include "ns3/ccnb-parser-dattr.h"
-#include "ns3/ccnb-parser-ext.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 <boost/foreach.hpp>
 
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h b/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h
index ad0ff74..90aee97 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h
+++ b/helper/ccnb-parser/visitors/ccnb-parser-void-no-argu-visitor.h
@@ -21,7 +21,7 @@
 #ifndef _CCNB_PARSER_VOID_NO_ARGU_VISITOR_H_
 #define _CCNB_PARSER_VOID_NO_ARGU_VISITOR_H_
 
-#include <ns3/ccnb-parser-common.h>
+#include "../ccnb-parser-common.h"
 
 namespace ns3 {
 namespace CcnbParser {
diff --git a/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h b/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h
index 4fd228d..5ac08bf 100644
--- a/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h
+++ b/helper/ccnb-parser/visitors/ccnb-parser-void-visitor.h
@@ -21,7 +21,7 @@
 #ifndef _CCNB_PARSER_VOID_VISITOR_H_
 #define _CCNB_PARSER_VOID_VISITOR_H_
 
-#include "ns3/ccnb-parser-common.h"
+#include "../ccnb-parser-common.h"
 #include <boost/any.hpp>
 
 namespace ns3 {
diff --git a/helper/ccnx-decoding-helper.cc b/helper/ccnx-decoding-helper.cc
index 408190b..4d4695c 100644
--- a/helper/ccnx-decoding-helper.cc
+++ b/helper/ccnx-decoding-helper.cc
@@ -23,11 +23,11 @@
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
 
-#include "ns3/ccnb-parser-interest-visitor.h"
-#include "ns3/ccnb-parser-content-object-visitor.h"
-#include "ns3/ccnb-parser-block.h"
+#include "ccnb-parser/visitors/ccnb-parser-interest-visitor.h"
+#include "ccnb-parser/visitors/ccnb-parser-content-object-visitor.h"
 
-#include "ns3/ccnb-parser-dtag.h"
+#include "ccnb-parser/syntax-tree/ccnb-parser-block.h"
+#include "ccnb-parser/syntax-tree/ccnb-parser-dtag.h"
 
 #include "ns3/log.h"
 
diff --git a/helper/ccnx-encoding-helper.h b/helper/ccnx-encoding-helper.h
index bea5087..acce922 100644
--- a/helper/ccnx-encoding-helper.h
+++ b/helper/ccnx-encoding-helper.h
@@ -23,7 +23,7 @@
 
 #include <sys/types.h>
 
-#include "ns3/ccnb-parser-common.h"
+#include "ccnb-parser/ccnb-parser-common.h"
 #include "ns3/ptr.h"
 #include "ns3/nstime.h"
 #include "ns3/buffer.h"
diff --git a/helper/ccnx-stack-helper.cc b/helper/ccnx-stack-helper.cc
index 0809d58..2631be2 100644
--- a/helper/ccnx-stack-helper.cc
+++ b/helper/ccnx-stack-helper.cc
@@ -70,16 +70,17 @@
 #include "ns3/point-to-point-helper.h"
 
 #include "../model/ccnx-forwarding-strategy.h"
+#include "../model/ccnx-net-device-face.h"
+#include "../model/ccnx-l3-protocol.h"
+#include "../model/ccnx-fib.h"
 
-#include "ns3/ccnx-net-device-face.h"
-#include "ns3/ccnx-l3-protocol.h"
-#include "ns3/ccnx-fib.h"
 #include "ns3/node-list.h"
 #include "ns3/loopback-net-device.h"
 #include "ns3/global-router-interface.h"
 #include "ns3/ipv4.h"
 #include "ns3/ipv4-global-routing.h"
-#include "ns3/ipv4-global-routing-ordered-nexthops.h"
+#include "../utils/ipv4-global-routing-ordered-nexthops.h"
+
 #include "ns3/ipv4-routing-helper.h"
 #include "ns3/ipv4-global-routing-helper.h"
 #include "ns3/data-rate.h"
diff --git a/model/ccnx-content-object-header.cc b/model/ccnx-content-object-header.cc
index e871e23..767d512 100644
--- a/model/ccnx-content-object-header.cc
+++ b/model/ccnx-content-object-header.cc
@@ -22,8 +22,8 @@
 #include "ccnx-content-object-header.h"
 
 #include "ns3/log.h"
-#include "ns3/ccnx-encoding-helper.h"
-#include "ns3/ccnx-decoding-helper.h"
+#include "../helper/ccnx-encoding-helper.h"
+#include "../helper/ccnx-decoding-helper.h"
 
 NS_LOG_COMPONENT_DEFINE ("CcnxContentObjectHeader");
 
diff --git a/model/ccnx-interest-header.cc b/model/ccnx-interest-header.cc
index 6539ff8..941fc02 100644
--- a/model/ccnx-interest-header.cc
+++ b/model/ccnx-interest-header.cc
@@ -26,8 +26,8 @@
 #include "ccnx-interest-header.h"
 
 #include "ns3/log.h"
-#include "ns3/ccnx-encoding-helper.h"
-#include "ns3/ccnx-decoding-helper.h"
+#include "../helper/ccnx-encoding-helper.h"
+#include "../helper/ccnx-decoding-helper.h"
 
 NS_LOG_COMPONENT_DEFINE ("CcnxInterestHeader");
 
diff --git a/model/ccnx-net-device-face.cc b/model/ccnx-net-device-face.cc
index 468d8f1..d42515f 100644
--- a/model/ccnx-net-device-face.cc
+++ b/model/ccnx-net-device-face.cc
@@ -20,8 +20,8 @@
  */
 
 #include "ccnx-net-device-face.h"
+#include "ccnx-l3-protocol.h"
 
-#include "ns3/ccnx-l3-protocol.h"
 #include "ns3/net-device.h"
 #include "ns3/log.h"
 #include "ns3/packet.h"
diff --git a/model/ccnx-pit.cc b/model/ccnx-pit.cc
index e72c5e5..d9667cf 100644
--- a/model/ccnx-pit.cc
+++ b/model/ccnx-pit.cc
@@ -51,11 +51,13 @@
                    StringValue ("1s"),
                    MakeTimeAccessor (&CcnxPit::GetCleanupTimeout, &CcnxPit::SetCleanupTimeout),
                    MakeTimeChecker ())
+    
     .AddAttribute ("PitEntryPruningTimout",
                    "Timeout for PIT entry to live after being satisfied. To make sure recently satisfied interest will not be satisfied again",
                    StringValue ("100ms"),
                    MakeTimeAccessor (&CcnxPit::m_PitEntryPruningTimout),
                    MakeTimeChecker ())
+    
     .AddAttribute ("PitEntryDefaultLifetime",
                    "Default lifetime of PIT entry (aka default Interest lifetime)",
                    StringValue("4s"),
diff --git a/wscript b/wscript
index ad8027b..f6aeb90 100644
--- a/wscript
+++ b/wscript
@@ -56,6 +56,7 @@
         "helper/ccnx-stack-helper.h",
         "helper/ccnx-producer-helper.h",
         "helper/ccnx-consumer-helper.h",
+        "helper/ccnx-header-helper.h",
 
         "apps/ccnx-app.h",
         "apps/ccnx-consumer.h",