Serious refactoring. Making forwarding strategy really modular
diff --git a/model/content-store/ccnx-content-store-impl.h b/model/content-store/ccnx-content-store-impl.h
index 9bdc58e..b3275da 100644
--- a/model/content-store/ccnx-content-store-impl.h
+++ b/model/content-store/ccnx-content-store-impl.h
@@ -41,7 +41,7 @@
   Lookup (Ptr<const CcnxInterestHeader> interest);
             
   virtual inline bool
-  Add (Ptr<CcnxContentObjectHeader> header, Ptr<const Packet> packet);
+  Add (Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> packet);
 
   // virtual bool
   // Remove (Ptr<CcnxInterestHeader> header);
@@ -79,7 +79,7 @@
     
 template<class Container>
 bool 
-CcnxContentStoreImpl<Container>::Add (Ptr<CcnxContentObjectHeader> header, Ptr<const Packet> packet)
+CcnxContentStoreImpl<Container>::Add (Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> packet)
 {
   // NS_LOG_FUNCTION (this << header->GetName ());
 
diff --git a/model/content-store/ccnx-content-store.cc b/model/content-store/ccnx-content-store.cc
index ccbf200..abbf9c3 100644
--- a/model/content-store/ccnx-content-store.cc
+++ b/model/content-store/ccnx-content-store.cc
@@ -58,7 +58,7 @@
 
 //////////////////////////////////////////////////////////////////////
 
-CcnxContentStoreEntry::CcnxContentStoreEntry (Ptr<CcnxContentObjectHeader> header, Ptr<const Packet> packet)
+CcnxContentStoreEntry::CcnxContentStoreEntry (Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> packet)
   : m_header (header)
   , m_packet (packet->Copy ())
 {
diff --git a/model/content-store/ccnx-content-store.h b/model/content-store/ccnx-content-store.h
index 34d209d..f0abd61 100644
--- a/model/content-store/ccnx-content-store.h
+++ b/model/content-store/ccnx-content-store.h
@@ -59,7 +59,7 @@
    * The constructor will make a copy of the supplied packet and calls
    * RemoveHeader and RemoveTail on the copy.
    */
-  CcnxContentStoreEntry (Ptr<CcnxContentObjectHeader> header, Ptr<const Packet> packet);
+  CcnxContentStoreEntry (Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> packet);
 
   /**
    * \brief Get prefix of the stored entry
@@ -90,7 +90,7 @@
   GetFullyFormedCcnxPacket () const;
 
 private:
-  Ptr<CcnxContentObjectHeader> m_header; ///< \brief non-modifiable CcnxContentObjectHeader
+  Ptr<const CcnxContentObjectHeader> m_header; ///< \brief non-modifiable CcnxContentObjectHeader
   Ptr<Packet> m_packet; ///< \brief non-modifiable content of the ContentObject packet
 };
 
@@ -138,7 +138,7 @@
    * @returns true if an existing entry was updated, false otherwise
    */
   virtual bool
-  Add (Ptr<CcnxContentObjectHeader> header, Ptr<const Packet> packet) = 0;
+  Add (Ptr<const CcnxContentObjectHeader> header, Ptr<const Packet> packet) = 0;
 
   // /**
   //  * \brief Add a new content to the content store.