diff --git a/src/ccnx-tunnel.cpp b/src/ccnx-tunnel.cpp
index 467f7a1..b36b030 100644
--- a/src/ccnx-tunnel.cpp
+++ b/src/ccnx-tunnel.cpp
@@ -28,10 +28,11 @@
 }
 
 int
-CcnxTunnel::sendInterest (const std::string &interest, Closure *closure)
+CcnxTunnel::sendInterest (const Interest &interest, Closure *closure)
 {
-  string tunneledInterest = queryRoutableName(interest);
-  Closure *cp = new TunnelClosure(closure, this, interest);
+  string strInterest = interest.name();
+  string tunneledInterest = queryRoutableName(strInterest);
+  Closure *cp = new TunnelClosure(closure, this, strInterest);
   sendInterest(tunneledInterest, cp);
 }
 
diff --git a/src/ccnx-wrapper.cpp b/src/ccnx-wrapper.cpp
index 0710c67..1b791c9 100644
--- a/src/ccnx-wrapper.cpp
+++ b/src/ccnx-wrapper.cpp
@@ -32,6 +32,17 @@
   return &bytes[0];
 }
 
+void
+split(const string &name, Comps &comps)
+{
+  stringstream ss(name);
+  string comp;
+  while(getline(ss, comp, '/'))
+  {
+    comps.push_back(comp);
+  }
+}
+
 CcnxWrapper::CcnxWrapper()
   : m_handle (0)
   , m_keyStore (0)
@@ -376,7 +387,7 @@
   return CCN_UPCALL_RESULT_OK;
 }
 
-int CcnxWrapper::sendInterest (const string &strInterest, Closure *closure)
+int CcnxWrapper::sendInterest (const Interest &interest, Closure *closure)
 {
   recursive_mutex::scoped_lock lock(m_mutex);
   if (!m_running || !m_connected)
@@ -385,7 +396,7 @@
   ccn_charbuf *pname = ccn_charbuf_create();
   ccn_closure *dataClosure = new ccn_closure;
 
-  ccn_name_from_uri (pname, strInterest.c_str());
+  ccn_name_from_uri (pname, interest.name().c_str());
   dataClosure->data = (void *)closure;
 
   dataClosure->p = &incomingData;
