get rid of publisher and fetcher
modify SyncAppSocket API
modify SyncLogic API
Tweak SeqNo
diff --git a/ccnx/sync-ccnx-wrapper.h b/ccnx/sync-ccnx-wrapper.h
index b8c3c93..b51c629 100644
--- a/ccnx/sync-ccnx-wrapper.h
+++ b/ccnx/sync-ccnx-wrapper.h
@@ -37,6 +37,7 @@
 #include <boost/thread/thread.hpp>
 #include <boost/function.hpp>
 #include <string>
+#include <sstream>
 
 /**
  * \defgroup sync SYNC protocol
@@ -53,7 +54,7 @@
  */
 class CcnxWrapper {
 public:
-  typedef boost::function<void (std::string, std::string)> DataCallback;
+  typedef boost::function<void (std::string, std::string)> StringDataCallback;
   typedef boost::function<void (std::string, const char *buf, size_t len)> RawDataCallback;
   typedef boost::function<void (std::string)> InterestCallback;
   
@@ -78,10 +79,10 @@
    * @return the return code of ccn_express_interest
    */
   int
-  sendInterest (const std::string &strInterest, const DataCallback &dataCallback, int retry = 0);
+  sendInterestForString (const std::string &strInterest, const StringDataCallback &strDataCallback, int retry = 0);
 
   int 
-  sendInterestForRawData (const std::string &strInterest, const RawDataCallback &rawDataCallback, int retry = 0);
+  sendInterest (const std::string &strInterest, const RawDataCallback &rawDataCallback, int retry = 0);
 
   /**
    * @brief set Interest filter (specify what interest you want to receive)
@@ -110,7 +111,10 @@
    * @return code generated by ccnx library calls, >0 if success
    */
   int
-  publishData (const std::string &name, const std::string &dataBuffer, int freshness);
+  publishStringData (const std::string &name, const std::string &dataBuffer, int freshness);
+
+  int 
+  publishRawData (const std::string &name, const char *buf, size_t len, int freshness);
 
 private:
   /// @cond include_hidden 
@@ -165,11 +169,11 @@
 
 class DataClosurePass: public ClosurePass {
 public:
-  DataClosurePass(CallbackType type, int retry, const CcnxWrapper::DataCallback &dataCallback);
+  DataClosurePass(CallbackType type, int retry, const CcnxWrapper::StringDataCallback &strDataCallback);
   virtual ~DataClosurePass();
   virtual void runCallback(std::string name, const char *, size_t len);
 private:
-  CcnxWrapper::DataCallback * m_callback;  
+  CcnxWrapper::StringDataCallback * m_callback;  
 };
 
 class RawDataClosurePass: public ClosurePass {