diff --git a/bindings/scan-header.h b/bindings/scan-header.h
new file mode 100644
index 0000000..7d35e18
--- /dev/null
+++ b/bindings/scan-header.h
@@ -0,0 +1,58 @@
+/** -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/* 
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Alexander Afanasyev
+ * 
+ * GNU 3.0 license, See the LICENSE file for more information
+ * 
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ns3/ndnSIM-module.h"
+
+using namespace ns3;
+using namespace ndn;
+
+static inline void
+__dummy_function_on_interest_callback_instantiation (Ptr<const Name>, Ptr<const Interest>)
+{
+}
+
+static inline void
+__dummy_function_on_data_callback_instantiation (Ptr<const Interest>, Ptr<const ContentObject>)
+{
+}
+
+static inline void
+__dummy_function_on_timeout_callback_instantiation (Ptr<const Interest>)
+{
+}
+
+static inline void
+__dummy_function_to_force_ndn_api_face_callback_instantiations ()
+{
+  ApiFace face (0);
+  Ptr<Interest> interest;
+  Ptr<Name> prefix;
+
+  face.ExpressInterest (interest,
+                        MakeCallback (__dummy_function_on_data_callback_instantiation),
+                        MakeCallback (__dummy_function_on_timeout_callback_instantiation)
+                        );
+
+  face.SetInterestFilter (prefix,
+                          MakeCallback (__dummy_function_on_interest_callback_instantiation));
+
+  std::string tmp ("bla");
+  char &test = tmp[0];
+}
+
+
+// /// @cond include_hidden
+// #ifdef PYTHON_SCAN
+// struct CallbackVoidNameInterest : public Callback<void, Ptr<const Name>, Ptr<const Interest> > { };
+// struct CallbackVoidInterestContentObject : public Callback<void, Ptr<const Interest>, Ptr<const ContentObject> > { };
+// struct CallbackVoidInterest : public Callback<void, Ptr<const Interest> > { };
+// #endif
+// /// @endcond
+
diff --git a/ndn.cxx/blob.h b/ndn.cxx/blob.h
index f00d08e..4b488b3 100644
--- a/ndn.cxx/blob.h
+++ b/ndn.cxx/blob.h
@@ -16,16 +16,31 @@
 #include "ns3/ndn-common.h"
 
 #include <vector>
-#include <cstddef>
 
 NDN_NAMESPACE_BEGIN
 
 /**
  * @brief Class representing a general-use binary blob
  */
-class Blob : public std::vector<char>
+class Blob
 {
 public:
+  typedef std::vector<char> base;
+  
+  typedef base::value_type             value_type;
+  typedef base::pointer                pointer;
+  typedef base::const_pointer          const_pointer;
+  typedef base::reference              reference;
+  typedef base::const_reference        const_reference;
+  typedef base::iterator               iterator;
+  typedef base::const_iterator         const_iterator;
+  typedef base::const_reverse_iterator const_reverse_iterator;
+  typedef base::reverse_iterator       reverse_iterator;
+  typedef base::size_type              size_type;
+  typedef base::difference_type        difference_type;
+  typedef base::allocator_type         allocator_type;
+  
+public:
   /**
    * @brief Creates an empty blob
    */
@@ -33,8 +48,13 @@
   {
   }
 
+  Blob (const std::string &data)
+    : m_data (data.begin (), data.end ())
+  {
+  }
+
   Blob (const void *buf, size_t length)
-    : std::vector<char> (reinterpret_cast<const char*> (buf), reinterpret_cast<const char*> (buf) + length)
+    : m_data (reinterpret_cast<const char*> (buf), reinterpret_cast<const char*> (buf) + length)
   {
   }
   
@@ -44,7 +64,7 @@
   inline char*
   buf ()
   {
-    return &front ();
+    return &m_data.front ();
   }
 
   /**
@@ -53,10 +73,57 @@
   inline const char*
   buf () const
   {
-    return &front ();
+    return &m_data.front ();
   }
+
+  iterator begin () { return m_data.begin (); }
+  const_iterator begin () const { return m_data.begin (); }
+  iterator end () { return m_data.end (); }
+  const_iterator end () const { return m_data.end (); }
+  size_t size () const { return m_data.size (); }
+
+  void swap (Blob &x) { m_data.swap (x.m_data); }
+  void push_back (value_type val) { m_data.push_back (val); }
+
+  bool empty () const { return m_data.empty (); }
+
+  Blob &
+  operator = (const Blob &other) { m_data = other.m_data; return *this; }
+
+  reference operator [] (size_type pos) { return m_data [pos]; }
+  const_reference operator [] (size_type pos) const { return m_data [pos]; }
+
+  char getItem (size_type pos) const { return m_data [pos]; }
+
+  void clear () { m_data.clear (); }
+
+private:
+  friend bool operator == (const Blob &a, const Blob &b);
+  friend bool operator <  (const Blob &a, const Blob &b);
+  friend bool operator <= (const Blob &a, const Blob &b);
+  friend bool operator >  (const Blob &a, const Blob &b);
+  friend bool operator >= (const Blob &a, const Blob &b);
+
+private:
+  std::vector< char > m_data;
 };
 
+inline bool operator == (const Blob &a, const Blob &b)  { return a.m_data == b.m_data; }
+inline bool operator <  (const Blob &a, const Blob &b)  { return a.m_data <  b.m_data; }
+inline bool operator <= (const Blob &a, const Blob &b)  { return a.m_data <= b.m_data; }
+inline bool operator >  (const Blob &a, const Blob &b)  { return a.m_data >  b.m_data; }
+inline bool operator >= (const Blob &a, const Blob &b)  { return a.m_data >= b.m_data; }
+
 NDN_NAMESPACE_END
 
+#include <boost/functional/hash.hpp>
+namespace boost
+{
+inline std::size_t
+hash_value (const ns3::ndn::Blob v)
+{
+  return boost::hash_range (v.begin(), v.end());
+}
+}
+
 #endif // NDN_BLOB_H
diff --git a/ndn.cxx/exclude.cc b/ndn.cxx/exclude.cc
index 16c78bc..f8137eb 100644
--- a/ndn.cxx/exclude.cc
+++ b/ndn.cxx/exclude.cc
@@ -150,6 +150,11 @@
   return *this;
 }
 
+void
+Exclude::appendExclude (const name::Component &name, bool any)
+{
+  m_exclude.insert (std::make_pair (name, any));
+}
 
 std::ostream&
 operator << (std::ostream &os, const Exclude &exclude)
diff --git a/ndn.cxx/name-component.cc b/ndn.cxx/name-component.cc
index 8aa522c..084d6be 100644
--- a/ndn.cxx/name-component.cc
+++ b/ndn.cxx/name-component.cc
@@ -23,19 +23,19 @@
 
 Component::Component (const std::string &uri)
 {
-  copy (uri.begin (), uri.end (), back_inserter (*this));
+  copy (uri.begin (), uri.end (), std::back_inserter (*this));
 }
 
 Component::Component (std::string::const_iterator begin, std::string::const_iterator end)
 {
-  copy (begin, end, back_inserter (*this));
+  copy (begin, end, std::back_inserter (*this));
 }
 
 Component::Component (const void *buf, size_t length)
 {
   copy (static_cast<const char*> (buf),
         static_cast<const char*> (buf)+length,
-        back_inserter (*this));
+        std::back_inserter (*this));
 }
 
 Component &
@@ -43,7 +43,7 @@
 {
   try
     {
-      Uri::fromEscaped (uri.begin (), uri.end (), back_inserter (*this));
+      Uri::fromEscaped (uri.begin (), uri.end (), std::back_inserter (*this));
     }
   catch (error::Uri &err)
     {
@@ -61,7 +61,7 @@
 {
   try
     {
-      Uri::fromEscaped (begin, end, back_inserter (*this));
+      Uri::fromEscaped (begin, end, std::back_inserter (*this));
     }
   catch (error::Uri &err)
     {
diff --git a/ndn.cxx/name-component.h b/ndn.cxx/name-component.h
index e1b7296..7f523e0 100644
--- a/ndn.cxx/name-component.h
+++ b/ndn.cxx/name-component.h
@@ -11,11 +11,7 @@
 #ifndef NDN_NAME_COMPONENT_H
 #define NDN_NAME_COMPONENT_H
 
-#include <string>
-#include <vector>
-
 #include "blob.h"
-#include <stdint.h>
 
 NDN_NAMESPACE_BEGIN
 
@@ -24,7 +20,7 @@
 /**
  * @brief Class to representing binary blob of NDN name component
  *
- * This class is based on std::vector<char> and just provides several helpers
+ * This class is based on Blob (std::vector<char>) and just provides several helpers
  * to work with name components, as well as operator to apply canonical
  * ordering on name components
  */
@@ -290,8 +286,12 @@
 /**
  * @brief Stream output operator (output in escaped URI format)
  */
-std::ostream&
-operator <<(std::ostream &os, const Component &name);
+inline std::ostream&
+operator <<(std::ostream &os, const Component &name)
+{
+  name.toUri (os);
+  return os;
+}
 
 } // name
 
diff --git a/ndn.cxx/ndn-api-face.h b/ndn.cxx/ndn-api-face.h
index 4b88f51..78f482a 100644
--- a/ndn.cxx/ndn-api-face.h
+++ b/ndn.cxx/ndn-api-face.h
@@ -117,16 +117,7 @@
   ApiFacePriv *m_this;
 };
 
-
-/// @cond include_hidden
-#ifdef PYTHON_SCAN
-struct CallbackVoidNameInterest : public Callback<void, Ptr<const Name>, Ptr<const Interest> > { };
-struct CallbackVoidInterestContentObject : public Callback<void, Ptr<const Interest>, Ptr<const ContentObject> > { };
-struct CallbackVoidInterest : public Callback<void, Ptr<const Interest> > { };
-#endif
-/// @endcond
-
-}
-}
+} // ndn
+} // ns3
 
 #endif // NDN_API_HANDLER_H
diff --git a/wscript b/wscript
index fb00647..f192ace 100644
--- a/wscript
+++ b/wscript
@@ -137,9 +137,9 @@
         "model/ndn-name-components.h",
         "model/ndn-name.h",
 
-        "ndn.cxx/name.h",
-        "ndn.cxx/name-component.h",
         "ndn.cxx/blob.h",
+        "ndn.cxx/name-component.h",
+        "ndn.cxx/name.h",
         "ndn.cxx/exclude.h",
         "ndn.cxx/ndn-api-face.h",
 
