Some progress on CcnxPit. Partially working
diff --git a/model/ccnx-pit.h b/model/ccnx-pit.h
index b6e4388..0597863 100644
--- a/model/ccnx-pit.h
+++ b/model/ccnx-pit.h
@@ -63,12 +63,17 @@
 
   /**
    * \brief Find corresponding PIT entry for the given content name
+   *
+   * Not that this call should be repeated enough times until it return 0.
+   * This way all records with shorter or equal prefix as in content object will be found
+   * and satisfied.
+   *
    * \param prefix Prefix for which to lookup the entry
-   * \returns iterator to Pit entry. If record not found,
-   *          return end() iterator
+   * \returns smart pointer to PIT entry. If record not found,
+   *          returns 0
    */
   virtual Ptr<CcnxPitEntry>
-  Lookup (const CcnxContentObjectHeader &header) const = 0;
+  Lookup (const CcnxContentObjectHeader &header) = 0;
 
   /**
    * \brief Find a PIT entry for the given content interest
@@ -80,14 +85,6 @@
   Lookup (const CcnxInterestHeader &header) = 0;
 
   /**
-   * @brief Check if the Interest carries an existent nonce.
-   * If not, nonce will be added to the list of known nonces
-   * @returns true if interest is duplicate (carries an existent nonce), false otherwise
-   */
-  virtual bool
-  CheckIfDuplicate (Ptr<CcnxPitEntry> entry, const CcnxInterestHeader &header) = 0;
-  
-  /**
    * @brief Creates a PIT entry for the given interest
    * @param header parsed interest header
    * @returns iterator to Pit entry. If record could not be created (e.g., limit reached),
@@ -96,7 +93,7 @@
    * Note. This call assumes that the entry does not exist (i.e., there was a Lookup call before)
    */
   virtual Ptr<CcnxPitEntry>
-  Create (const CcnxInterestHeader &header) = 0;
+  Create (Ptr<const CcnxInterestHeader> header) = 0;
   
   /**
    * @brief Mark PIT entry deleted
@@ -116,19 +113,37 @@
   virtual void
   Print (std::ostream &os) const = 0;
 
-  template<class A,class M>
-  void
-  modify (A, M)
-  {
-    ;
-  }
+  // template<class A,class M>
+  // void
+  // modify (A, M)
+  // {
+  //   ;
+  // }
 
-  template<class A>
-  void
-  erase (A)
-  {
-    ;
-  }
+  // template<class A>
+  // void
+  // erase (A)
+  // {
+  //   ;
+  // }
+
+  /**
+   * @brief Return first element of FIB (no order guaranteed)
+   */
+  virtual Ptr<CcnxPitEntry>
+  Begin () = 0;
+
+  /**
+   * @brief Return item next after last (no order guaranteed)
+   */
+  virtual Ptr<CcnxPitEntry>
+  End () = 0;
+
+  /**
+   * @brief Advance the iterator
+   */
+  virtual Ptr<CcnxPitEntry>
+  Next (Ptr<CcnxPitEntry>) = 0;
 
   ////////////////////////////////////////////////////////////////////////////
   ////////////////////////////////////////////////////////////////////////////
@@ -137,7 +152,7 @@
   /**
    * @brief Static call to cheat python bindings
    */
-  static inline Ptr<CcnxFib>
+  static inline Ptr<CcnxPit>
   GetCcnxPit (Ptr<Object> node);
 
   ////////////////////////////////////////////////////////////////////////////
@@ -179,7 +194,6 @@
 
   // configuration variables. Check implementation of GetTypeId for more details
   Time    m_PitEntryPruningTimout;
-  Time    m_PitEntryDefaultLifetime;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -192,6 +206,13 @@
   return os;
 }
 
+inline Ptr<CcnxPit>
+CcnxPit::GetCcnxPit (Ptr<Object> node)
+{
+  return node->GetObject<CcnxPit> ();
+}
+
+
 } // namespace ns3
 
 #endif	/* CCNX_PIT_H */