diff --git a/ccnx/sync-app-socket.cc b/ccnx/sync-app-socket.cc
index b3ed61b..3da5402 100644
--- a/ccnx/sync-app-socket.cc
+++ b/ccnx/sync-app-socket.cc
@@ -29,7 +29,7 @@
 {
 
 SyncAppSocket::SyncAppSocket (const string &syncPrefix, NewDataCallback dataCallback, RemoveCallback rmCallback )
-	: m_ccnxHandle (new CcnxWrapper())
+  : m_ccnxHandle (CcnxWrapper::Create ())
   , m_newDataCallback(dataCallback)
   , m_syncLogic (syncPrefix,
                  bind(&SyncAppSocket::passCallback, this, _1),
diff --git a/ccnx/sync-ccnx-wrapper.cc b/ccnx/sync-ccnx-wrapper.cc
index d0a6376..3e2ebc1 100644
--- a/ccnx/sync-ccnx-wrapper.cc
+++ b/ccnx/sync-ccnx-wrapper.cc
@@ -49,7 +49,6 @@
 #ifdef _DEBUG_WRAPPER_      
   m_c = c;
 #endif
-  m_handle = ccn_create();
   connectCcnd();
   initKeyStore ();
   createKeyLocator ();
@@ -59,7 +58,12 @@
 void
 CcnxWrapper::connectCcnd()
 {
-  ccn_disconnect (m_handle);
+  if (m_handle != 0) {
+    ccn_disconnect (m_handle);
+    ccn_destroy (&m_handle);
+  }
+  
+  m_handle = ccn_create ();
   _LOG_DEBUG("<<< connecting to ccnd");
   if (ccn_connect(m_handle, NULL) < 0)
   {
@@ -70,6 +74,7 @@
   {
     for (map<std::string, InterestCallback>::const_iterator it = m_registeredInterests.begin(); it != m_registeredInterests.end(); ++it)
     {
+      // clearInterestFilter(it->first);
       setInterestFilter(it->first, it->second);
       _LOG_DEBUG("<<< registering interest filter for: " << it->first);
     }
diff --git a/include/sync-ccnx-wrapper.h b/include/sync-ccnx-wrapper.h
index d68cdc1..879bc81 100644
--- a/include/sync-ccnx-wrapper.h
+++ b/include/sync-ccnx-wrapper.h
@@ -58,7 +58,17 @@
   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;
+
+
+  static
+  CcnxWrapper *
+  Create ()
+  {
+    static CcnxWrapper *wrapper = new CcnxWrapper ();
+    return wrapper;
+  }
   
+private:
   /**
    * @brief initialize the wrapper; a lot of things needs to be done. 1) init
    * keystore 2) init keylocator 3) start a thread to hold a loop of ccn_run
@@ -69,7 +79,8 @@
   char m_c;
 #else
   CcnxWrapper();
-#endif  
+#endif
+public:
   ~CcnxWrapper();
 
   /**
diff --git a/model/sync-logic.cc b/model/sync-logic.cc
index ed90655..5280c93 100644
--- a/model/sync-logic.cc
+++ b/model/sync-logic.cc
@@ -65,7 +65,7 @@
   , m_syncPrefix (syncPrefix)
   , m_onUpdate (onUpdate)
   , m_onRemove (onRemove)
-  , m_ccnxHandle(new CcnxWrapper())
+  , m_ccnxHandle(CcnxWrapper::Create ())
   , m_recoveryRetransmissionInterval (m_defaultRecoveryRetransmitInterval)
 #ifndef NS3_MODULE
   , m_randomGenerator (static_cast<unsigned int> (std::time (0)))
