diff --git a/model/sync-app-data-publish.h b/model/sync-app-data-publish.h
index 2031532..f02a188 100644
--- a/model/sync-app-data-publish.h
+++ b/model/sync-app-data-publish.h
@@ -23,6 +23,7 @@
 #ifndef SYNC_APP_DATA_PUBLISH_H
 #define SYNC_APP_DATA_PUBLISH_H
 #include <boost/shared_ptr.hpp>
+#include <boost/unordered_map.hpp>
 #include "sync-ccnx-wrapper.h"
 
 /**
@@ -35,29 +36,29 @@
 /**
  * \ingroup sync
  * @brief publishes application data using incrementing sequence number (for
- * each sequence namber and keeps track of most recently published data for 
+ * each sequence namber and keeps track of most recently published data for
  * each name prefix
  */
 class AppDataPublish
 {
 public:
-	AppDataPublish();
+	AppDataPublish(boost::shared_ptr<CcnxWrapper> ccnxHandle)
+	{ m_ccnxHandle = ccnxHandle; }
 	~AppDataPublish() {};
 
 	/**
 	 * @brief get the name (including sequence number) and the content
 	 * (unencoded, just XML stanza) of the most recent published data
 	 *
-	 * @param prefix the name prefix to look for 
+	 * @param prefix the name prefix to look for
 	 * @return the pair of name and content
 	 */
-	std::pair<std::string, boost::shared_ptr<const DataBuffer> >
-	getRecentData(std::string prefix);
+	std::pair<std::string, std::string> getRecentData(std::string prefix);
 
 	/**
 	 * brief get the most recent sequence number for a name prefix
 	 */
-	 long getHighestSeq(std:string prefix);
+	 u_int32_t getHighestSeq(std::string prefix);
 
 	/**
 	 * @brief publish data for a name prefix, updates the corresponding
@@ -68,13 +69,12 @@
 	 * @param freshness the freshness for the data object
 	 * @return whether the publish succeeded
 	 */
-	bool publishData(std::string name, boost::shared_ptr<DataBufer> dataBuffer,
-	int freshness);
-  
+	bool publishData(std::string name, std::string dataBuffer, int freshness);
+
 private:
-	boost::unordered_map<string, long> m_sequenceLog;
+	boost::unordered_map<std::string, uint32_t> m_sequenceLog;
 	boost::shared_ptr<CcnxWrapper> m_ccnxHandle;
-	std::pair<std::string, boost::shared_ptr<DataBuffer> > m_recentData;
+	boost::unordered_map<std::string, std::string> m_recentData;
 };
 
 } // Sync
