Adding more components to CCNx stack

diff --git a/model/ccnx-l4-protocol.h b/model/ccnx-l4-protocol.h
index 14aceef..e0a6aed 100644
--- a/model/ccnx-l4-protocol.h
+++ b/model/ccnx-l4-protocol.h
@@ -48,8 +48,11 @@
 
   static TypeId GetTypeId (void);
 
+  CcnxL4Protocol ();
   virtual ~CcnxL4Protocol ();
 
+  void SetNode (Ptr<Node> node);
+
   /**
    * \param p packet to forward up
    * \param header Ccnx Header information
@@ -60,7 +63,7 @@
    */
   virtual enum RxStatus Receive (Ptr<Packet> p,
                                  CcnxHeader const &header,
-                                 Ptr<CcnxInterface> incomingInterface) = 0;
+                                 Ptr<CcnxInterface> incomingInterface);
 
   typedef Callback<void,Ptr<Packet>, Ptr<CcnxRoute> > DownTargetCallback;
   /**
@@ -69,14 +72,25 @@
    *
    * \param cb current Callback for the L4 protocol
    */
-  virtual void SetDownTarget (DownTargetCallback cb) = 0;
+  virtual void SetDownTarget (DownTargetCallback cb);
   /**
    * This method allows a caller to get the current down target callback
    * set for this L4 protocol, for
    *
    * \return current Callback for the L4 protocol
    */
-  virtual DownTargetCallback GetDownTarget (void) const = 0;
+  virtual DownTargetCallback GetDownTarget (void) const;
+
+protected:
+  virtual void DoDispose (void);
+  /*
+   * This function will notify other components connected to the node that a new stack member is now connected
+   * This will be used to notify Layer 3 protocol of layer 4 protocol stack to connect them together.
+   */
+  virtual void NotifyNewAggregate ();
+
+private:
+  DownTargetCallback m_downTarget;
 };
 
 } // Namespace ns3