diff --git a/utils/ndn-limits.h b/utils/ndn-limits.h
index 181059a..14aec50 100644
--- a/utils/ndn-limits.h
+++ b/utils/ndn-limits.h
@@ -23,7 +23,6 @@
 
 #include "ns3/ptr.h"
 #include "ns3/object.h"
-#include "ns3/nstime.h"
 #include "ns3/traced-value.h"
 
 namespace ns3 {
@@ -39,33 +38,38 @@
 public:
   static TypeId
   GetTypeId ();
-  
-  /**
-   * \brief Constructor
-   * \param prefix smart pointer to the prefix for the FIB entry
-   */
+
   Limits ()
   : m_maxLimit (-1)
   , m_curMaxLimit (0)
-  , m_outstanding (0)
   { }
- 
+
+  virtual
+  ~Limits () {}
+  
   /**
    * @brief Set limit for the number of outstanding interests
    */
-  void
-  SetMaxLimit (double max);
+  virtual void
+  SetMaxLimit (double max)
+  {
+    m_maxLimit = max;
+    m_curMaxLimit = max;
+  }    
 
   /**
    * @brief Get limit for the number of outstanding interests
    */
-  double
-  GetMaxLimit () const;
+  virtual double
+  GetMaxLimit () const
+  {
+    return m_maxLimit;
+  }
 
   /**
    * @brief Check whether limits are enabled or not
    */
-  inline bool
+  virtual inline bool
   IsEnabled () const
   {
     return m_maxLimit > 0.0;
@@ -85,7 +89,7 @@
   {
     return m_curMaxLimit;
   }
-
+  
   ////////////////////////////////////////////////////////////////////////////
   ////////////////////////////////////////////////////////////////////////////
   ////////////////////////////////////////////////////////////////////////////
@@ -93,20 +97,12 @@
   /**
    * @brief Check if new interest can be send out, if yes, number of outstanding will be increased
    */
-  bool
-  IsBelowLimit ();
-
-  /**
-   * @brief Remove outstanding interests
-   */
-  void
-  RemoveOutstanding ();
+  virtual bool
+  IsBelowLimit () = 0;
   
-public:
+protected:
   double m_maxLimit;
-  
   TracedValue< double > m_curMaxLimit;
-  TracedValue< double > m_outstanding;
 };
   
 
