diff --git a/model/ndn_interestpacket.cc b/model/ndn_interestpacket.cc
index 3c9d962..fdda4cf 100644
--- a/model/ndn_interestpacket.cc
+++ b/model/ndn_interestpacket.cc
@@ -9,5 +9,62 @@
 
 namespace ns3
 {
-
+namespace NDNabstraction
+{
+    InterestPacket::InterestPacket(unsigned char *name, uint32_t size):Packet ((uint8_t const *)name,size)
+    {
+        maxNameLength = 10240;
+    }
+    
+    uint32_t 
+    InterestPacket::GetName(unsigned char *name)
+    {
+        //uint32_t Packet::CopyData (uint8_t *buffer, uint32_t size) const
+        return CopyData((uint8_t*) name, maxNameLength); 
+    }
+    
+    void 
+    InterestPacket::AddTimeout(uint32_t milliseconds)
+    {
+        TimeoutHeader tHeader (milliseconds);
+        AddHeader (tHeader);    
+    }
+    
+    uint32_t
+    InterestPacket::GetTimeout(void)
+    {
+        TimeoutHeader tHeader;
+        PeekHeader(tHeader);
+        return tHeader.GetValue();
+    }
+    
+    void
+    InterestPacket::RemoveTimeout(void)
+    {
+        TimeoutHeader tHeader;
+        RemoveHeader(tHeader);
+    }
+    
+    void 
+    InterestPacket::AddNonce(uint32_t nonce)
+    {
+        NonceHeader tHeader (nonce);
+        AddHeader (tHeader);    
+    }
+    
+    uint32_t
+    InterestPacket::GetNonce(void)
+    {
+        NonceHeader tHeader;
+        PeekHeader(tHeader);
+        return tHeader.GetValue();
+    }
+    
+    void
+    InterestPacket::RemoveNonce(void)
+    {
+        NonceHeader tHeader;
+        RemoveHeader(tHeader);
+    }
+}
 }
\ No newline at end of file
diff --git a/model/ndn_interestpacket.h b/model/ndn_interestpacket.h
index fddc136..71a156a 100644
--- a/model/ndn_interestpacket.h
+++ b/model/ndn_interestpacket.h
@@ -13,13 +13,32 @@
 
 #include "ns3/header.h"
 #include <ns3/packet.h>
+#include <string>
+#include "ndn_timeoutheader.h"
+#include "ndn_nonceheader.h"
 
 namespace ns3
 {
+namespace NDNabstraction
+{
     class InterestPacket : public Packet 
     {
+        public: 
+            InterestPacket(unsigned char *name, uint32_t size);
+            
+            uint32_t GetName(unsigned char *name);
         
+            void AddTimeout(uint32_t milliseconds);
+            uint32_t GetTimeout(void);
+            void RemoveTimeout(void);
+        
+            void AddNonce(uint32_t nonce);
+            uint32_t GetNonce(void);
+            void RemoveNonce(void);
+        
+            uint32_t maxNameLength;
     };
 }
+}
 
 #endif 
\ No newline at end of file
