use Name everywhere
diff --git a/include/ccnx-tunnel.h b/include/ccnx-tunnel.h
index 15d5223..732370d 100644
--- a/include/ccnx-tunnel.h
+++ b/include/ccnx-tunnel.h
@@ -5,6 +5,7 @@
 
 #include "ccnx-common.h"
 #include "ccnx-wrapper.h"
+#include "ccnx-name.h"
 
 #define _OVERRIDE
 #ifdef __GNUC__
@@ -24,8 +25,8 @@
 class CcnxTunnel : public CcnxWrapper
 {
 public:
-  typedef multimap<string, InterestCallback> RegisteredInterestTable;
-  typedef multimap<string, InterestCallback>::iterator RitIter;
+  typedef multimap<Name, InterestCallback> RegisteredInterestTable;
+  typedef multimap<Name, InterestCallback>::iterator RitIter;
 
 
   CcnxTunnel();
@@ -33,50 +34,50 @@
 
   // name is topology-independent
   virtual int
-  publishData(const string &name, const unsigned char *buf, size_t len, int freshness) _OVERRIDE;
+  publishData(const Name &name, const unsigned char *buf, size_t len, int freshness) _OVERRIDE;
 
   int
-  publishContentObject(const string &name, const Bytes &contentObject, int freshness);
+  publishContentObject(const Name &name, const Bytes &contentObject, int freshness);
 
   virtual int
-  sendInterest (const string &interest, Closure *closure);
+  sendInterest (const Name &interest, Closure *closure, const Selectors &selectors = Selectors());
 
 
   // prefix is topology-independent
   virtual int
-  setInterestFilter(const string &prefix, const InterestCallback &interestCallback) _OVERRIDE;
+  setInterestFilter(const Name &prefix, const InterestCallback &interestCallback) _OVERRIDE;
 
   // prefix is topology-independent
   // this clears all entries with key equal to prefix
   virtual void
-  clearInterestFilter(const string &prefix) _OVERRIDE;
+  clearInterestFilter(const Name &prefix) _OVERRIDE;
 
   // subclass should provide translation service from topology-independent name
   // to routable name
-  virtual string
-  queryRoutableName(const string &name) = 0;
+  virtual Name
+  queryRoutableName(const Name &name) = 0;
 
   // subclass should implement the function to store ContentObject with topoloy-independent
   // name to the permanent storage; default does nothing
   virtual void
-  storeContentObject(const string &name, const Bytes &content) {}
+  storeContentObject(const Name &name, const Bytes &content) {}
 
   // should be called  when connect to a different network
   void
   refreshLocalPrefix();
 
   static bool
-  isPrefix(const string &prefix, const string &name);
+  isPrefix(const Name &prefix, const Name &name);
 
   void
-  handleTunneledInterest(const string &tunneldInterest);
+  handleTunneledInterest(const Name &tunneldInterest);
 
   void
-  handleTunneledData(const string &name, const Bytes &tunneledData, const Closure::DataCallback &originalDataCallback);
+  handleTunneledData(const Name &name, const Bytes &tunneledData, const Closure::DataCallback &originalDataCallback);
 
 protected:
   // need a way to update local prefix, perhaps using macports trick, but eventually we need something more portable
-  string m_localPrefix;
+  Name m_localPrefix;
   RegisteredInterestTable m_rit;
   Lock m_ritLock;
 };
@@ -84,19 +85,19 @@
 class TunnelClosure : public Closure
 {
 public:
-  TunnelClosure(int retry, const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback, CcnxTunnel *tunnel, const string &originalInterest);
+  TunnelClosure(int retry, const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback, CcnxTunnel *tunnel, const Name &originalInterest);
 
-  TunnelClosure(const Closure *closure, CcnxTunnel *tunnel, const string &originalInterest);
+  TunnelClosure(const Closure *closure, CcnxTunnel *tunnel, const Name &originalInterest);
 
   virtual void
-  runDataCallback(const string &name, const Bytes &content) _OVERRIDE;
+  runDataCallback(const Name &name, const Bytes &content) _OVERRIDE;
 
   virtual TimeoutCallbackReturnValue
-  runTimeoutCallback(const string &interest) _OVERRIDE;
+  runTimeoutCallback(const Name &interest) _OVERRIDE;
 
 private:
   CcnxTunnel *m_tunnel;
-  string m_originalInterest;
+  Name m_originalInterest;
 };
 
 };