diff --git a/src/content-server.cc b/src/content-server.cc
index a5aaf31..fa5a2bb 100644
--- a/src/content-server.cc
+++ b/src/content-server.cc
@@ -59,13 +59,9 @@
 void
 ContentServer::registerPrefix(const Name &prefix)
 {
-  Name actionPrefix = Name (prefix)(m_deviceName)("action")(m_sharedFolderName);
-  Name filePrefix = Name (prefix)(m_deviceName)("file");
-  m_ccnx->setInterestFilter (actionPrefix, bind(&ContentServer::serve_Action, this, prefix, _1));
-  m_ccnx->setInterestFilter (filePrefix, bind(&ContentServer::serve_File,   this, prefix, _1));
+  m_ccnx->setInterestFilter (prefix, bind(&ContentServer::serve, this, prefix, _1));
 
-  _LOG_DEBUG (">> content server: register " << actionPrefix);
-  _LOG_DEBUG (">> content server: register " << filePrefix);
+  _LOG_DEBUG (">> content server: register " << prefix);
 
   ScopedLock lock (m_mutex);
   m_prefixes.insert(prefix);
@@ -74,19 +70,36 @@
 void
 ContentServer::deregisterPrefix (const Name &prefix)
 {
-  Name actionPrefix = Name (prefix)(m_deviceName)("action")(m_sharedFolderName);
-  Name filePrefix = Name (prefix)(m_deviceName)("file");
 
-  m_ccnx->clearInterestFilter(actionPrefix);
-  m_ccnx->clearInterestFilter(filePrefix);
+  m_ccnx->clearInterestFilter(prefix);
 
-  _LOG_DEBUG ("<< content server: deregister " << actionPrefix);
-  _LOG_DEBUG ("<< content server: deregister " << filePrefix);
+  _LOG_DEBUG ("<< content server: deregister " << prefix);
   ScopedLock lock (m_mutex);
   m_prefixes.erase (prefix);
 }
 
 void
+ContentServer::serve(Name forwardingHint, const Name &interest)
+{
+  // /forwardingHint/device-name/action/shared-folder/action-seq
+  // /forwardingHint/device-name/file/file-hash/segment
+
+  Name name = interest.getPartialName(forwardingHint.size());
+  if (name.size() > 3)
+  {
+    string type = name.getCompAsString(name.size() - 3);
+    if (type == "action")
+    {
+      serve_Action (forwardingHint, interest);
+    }
+    else if (type == "file")
+    {
+      serve_File (forwardingHint, interest);
+    }
+  }
+}
+
+void
 ContentServer::serve_Action (Name forwardingHint, const Name &interest)
 {
   _LOG_DEBUG (">> content server serving, forwardHing " << forwardingHint << ", interest " << interest);
diff --git a/src/content-server.h b/src/content-server.h
index 946170d..47640d9 100644
--- a/src/content-server.h
+++ b/src/content-server.h
@@ -46,6 +46,9 @@
 
 private:
   void
+  serve (Ccnx::Name forwardingHint, const Ccnx::Name &interest);
+
+  void
   serve_Action (Ccnx::Name forwardingHint, const Ccnx::Name &interest);
 
   void
diff --git a/test/test-dispatcher.cc b/test/test-dispatcher.cc
index 838f8d7..6f619df 100644
--- a/test/test-dispatcher.cc
+++ b/test/test-dispatcher.cc
@@ -71,9 +71,9 @@
   cleanDir(dir1);
   cleanDir(dir2);
 
-  Dispatcher d1(user1, folder, dir1, ccnx1);
+  Dispatcher d1(user1, folder, dir1, ccnx1, false);
   usleep(100);
-  Dispatcher d2(user2, folder, dir2, ccnx2);
+  Dispatcher d2(user2, folder, dir2, ccnx2, false);
 
   usleep(14900000);
 
