diff --git a/model/ccnx-pit.h b/model/ccnx-pit.h
index cf00604..ed724fe 100644
--- a/model/ccnx-pit.h
+++ b/model/ccnx-pit.h
@@ -36,8 +36,9 @@
 #include <boost/multi_index/member.hpp>
 #include <boost/multi_index/mem_fun.hpp>
 #include <boost/multi_index/sequenced_index.hpp>
-
+#include <map>
 #include <iostream>
+#include <algorithm>
 
 namespace ns3 {
 
@@ -90,8 +91,8 @@
 // typedef std::map<int,int> PitCounter;
 // typedef std::map<int,int>::iterator PitCounterIterator;
 
-// typedef std::map<int,double> PitBucket;
-// typedef std::map<int,double>::iterator PitBucketIterator;
+ typedef std::map<int,double> PitBucket;
+ typedef std::map<int,double>::iterator PitBucketIterator;
 
 
 ////////////////////////////////////////////////////////////////////////
@@ -116,6 +117,11 @@
    */
   CcnxPit ();
 
+  /*CcnxPitEntryContainer::type::iterator
+  Add (const CcnxInterestHeader &header, CcnxFibEntryContainer::type::iterator fibEntry, Ptr<CcnxFace> face);*/
+  
+  bool
+    TryAddOutgoing(CcnxPitEntryContainer::type::iterator pitEntry, Ptr<CcnxFace> face);
   /**
    * \brief Find corresponding PIT entry for the given content name
    * \param prefix Prefix for which to lookup the entry
@@ -130,8 +136,8 @@
    * \param prefix Prefix for which to lookup the entry
    * \returns const reference to Pit entry. If record does not exist, it will be created
    */
-  const CcnxPitEntry&
-  Lookup (const CcnxInterestHeader &header);
+  CcnxPitEntryContainer::type::iterator
+  Lookup (const CcnxInterestHeader &header,CcnxFibEntryContainer::type::iterator &outFibEntry);
   
   // remove a PIT entry
   //void erase (const string &contentName);
@@ -142,11 +148,11 @@
   //	// Check if there are any interfaces that we haven't sent data to yet
   //	bool areFreeInterfaces( PitEntry &pe, int interface );
 
-  // // Periodically generate pre-calculated number of tokens (leak buckets)
-  // void LeakBuckets( );
+  // Periodically generate pre-calculated number of tokens (leak buckets)
+  void LeakBuckets( );
 	
-  // // Selectively leak a bucket
-  // void LeakBucket (Ptr<CcnxFace> face, int amount);
+  // Selectively leak a bucket
+  void LeakBucket (Ptr<CcnxFace> face, int amount);
 	
   /**
    * \brief Set cleanup timeout
@@ -170,9 +176,9 @@
   void SetFib (Ptr<CcnxFib> fib);
 
 public:
-  // PitBucket				 maxBucketsPerInterface; // maximum number of buckets. Automatically computed based on link capacity
+   PitBucket				 maxBucketsPerFace; // maximum number of buckets. Automatically computed based on link capacity
   // // averaging over 1 second (bandwidth * 1second)
-  // PitBucket				 leakSize;				 // size of a periodic bucket leak
+   PitBucket				 leakSize;				 // size of a periodic bucket leak
 	
 private:
   /** \brief Remove expired records from PIT */
@@ -185,7 +191,7 @@
   EventId m_cleanupEvent;   ///< \brief Cleanup event
 
   Ptr<CcnxFib> m_fib; ///< \brief Link to FIB table
-  // PitBucket	m_bucketsPerInterface;	///< \brief pending interface counter per interface
+  PitBucket	m_bucketsPerFace;	///< \brief pending interface counter per face
 };
 
 ///////////////////////////////////////////////////////////////////////////////
