diff --git a/helper/ccnx-stack-helper.cc b/helper/ccnx-stack-helper.cc
index e1a554a..6ea2883 100644
--- a/helper/ccnx-stack-helper.cc
+++ b/helper/ccnx-stack-helper.cc
@@ -16,6 +16,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ *          Ilya Moiseenko <iliamo@cs.ucla.edu> 
  */
 
 /**
@@ -189,9 +190,11 @@
   Ptr<CcnxFib> fib = CreateObject<CcnxFib> ();
   node->AggregateObject (fib);
 
-  Ptr<Ccnx> ccnx = CreateObject<CcnxL3Protocol> ();
+  Ptr<CcnxL3Protocol> ccnx = CreateObject<CcnxL3Protocol> ();
   node->AggregateObject (ccnx);
 
+  Ptr<CcnxPit> pit = ccnx->GetPit();
+    
   for (uint32_t index=0; index < node->GetNDevices (); index++)
     {
       Ptr<CcnxNetDeviceFace> face = Create<CcnxNetDeviceFace> (node->GetDevice (index));
@@ -199,11 +202,28 @@
       uint32_t __attribute__ ((unused)) face_id = ccnx->AddFace (face);
       NS_LOG_LOGIC ("Node " << node->GetId () << ": added CcnxNetDeviceFace as face #" << face_id);
 
+      // Setup bucket filtering
+      // Assume that we know average data packet size, and this size is equal default size
+      // Set maximum buckets (averaging over 1 second)
+      Ptr<PointToPointNetDevice> device = node->GetDevice(index)->GetObject<PointToPointNetDevice> ();
+      DataRateValue dataRate;
+      device->GetAttribute ("DataRate", dataRate);
+      pit->maxBucketsPerFace[face->GetId()] = 0.1 * dataRate.Get().GetBitRate () / 8 / (NDN_DEFAULT_DATA_SIZE + sizeof(CcnxInterestHeader)); 
+      pit->leakSize[face->GetId()] = 0.97 * NDN_INTEREST_RESET_PERIOD / SECOND * dataRate.Get().GetBitRate () / 8 / (NDN_DEFAULT_DATA_SIZE + sizeof(CcnxInterestHeader));
+      
+    
       face->SetUp ();
       faces->Add (face);
     }
     
-    m_forwardingHelper.SetForwarding(ccnx);
+/*    
+    // Assume that we know average data packet size, and this size is equal default size
+    // Set maximum buckets (averaging over 1 second)
+    _pit.maxBucketsPerInterface[*it] = 0.1*_node->macData[*it]->bandwidth / 8 / (NDN_DEFAULT_DATA_SIZE+sizeof(NdnPacket));
+    _pit.leakSize[*it] = 0.97 * NDN_INTEREST_RESET_PERIOD / SECOND * _node->macData[*it]->bandwidth/8 / (NDN_DEFAULT_DATA_SIZE+sizeof(NdnPacket));
+
+  */  
+    m_forwardingHelper.SetForwarding (ccnx, pit);
   
     // Ptr<CcnxForwardingStrategy> ccnxForwarding = m_forwarding->Create (node);
   // ccnx->SetForwardingStrategy (ccnxForwarding);
diff --git a/helper/ccnx-stack-helper.h b/helper/ccnx-stack-helper.h
index 78cc121..a728860 100644
--- a/helper/ccnx-stack-helper.h
+++ b/helper/ccnx-stack-helper.h
@@ -25,10 +25,12 @@
 #include "ns3/packet.h"
 #include "ns3/ptr.h"
 #include "ns3/object-factory.h"
-
+#include "ns3/point-to-point-net-device.h"
 #include "ccnx-trace-helper.h"
 #include "ns3/ccnx-forwarding-helper.h"
 #include "ns3/ccnx.h"
+#include "ns3/data-rate.h"
+#include "ns3/ccnx-interest-header.h"
 
 namespace ns3 {
 
