diff --git a/src/addcontactpanel.cpp b/src/addcontactpanel.cpp
index 8b9d66b..012ae4f 100644
--- a/src/addcontactpanel.cpp
+++ b/src/addcontactpanel.cpp
@@ -11,10 +11,11 @@
 #include "addcontactpanel.h"
 #include "ui_addcontactpanel.h"
 
-AddContactPanel::AddContactPanel(QWidget *parent) 
+AddContactPanel::AddContactPanel(ndn::Ptr<ContactManager> contactManager,
+                                 QWidget *parent) 
   : QDialog(parent)
   , ui(new Ui::AddContactPanel)
-  , m_selfEndorseCertificate(NULL)
+  , m_contactManager(contactManager)
 {
   ui->setupUi(this);
 
diff --git a/src/addcontactpanel.h b/src/addcontactpanel.h
index 9a5fe75..1da3788 100644
--- a/src/addcontactpanel.h
+++ b/src/addcontactpanel.h
@@ -15,6 +15,7 @@
 
 #ifndef Q_MOC_RUN
 #include "endorse-certificate.h"
+#include "contact-manager.h"
 #endif
 
 namespace Ui {
@@ -23,11 +24,13 @@
 
 class AddContactPanel : public QDialog
 {
-    Q_OBJECT
+  Q_OBJECT
 
 public:
-    explicit AddContactPanel(QWidget *parent = 0);
-    ~AddContactPanel();
+  explicit AddContactPanel(ndn::Ptr<ContactManager> contactManager,
+                           QWidget *parent = 0);
+
+  ~AddContactPanel();
 
 private slots:
   void
@@ -41,7 +44,7 @@
 
 private:
   Ui::AddContactPanel *ui;
-  ndn::Ptr<EndorseCertificate> m_selfEndorseCertificate;
+  ndn::Ptr<ContactManager> m_contactManager;
 };
 
 #endif // ADDCONTACTPANEL_H
diff --git a/src/contact-manager.cpp b/src/contact-manager.cpp
new file mode 100644
index 0000000..0ebd2e3
--- /dev/null
+++ b/src/contact-manager.cpp
@@ -0,0 +1,74 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#include "contact-manager.h"
+
+#include <ndn.cxx/wrapper/wrapper.h>
+#include <ndn.cxx/security/keychain.h>
+#include <ndn.cxx/security/identity/basic-identity-storage.h>
+#include <ndn.cxx/security/identity/osx-privatekey-storage.h>
+#include <ndn.cxx/security/policy/simple-policy-manager.h>
+#include <ndn.cxx/security/policy/identity-policy-rule.h>
+#include <ndn.cxx/security/cache/ttl-certificate-cache.h>
+#include <ndn.cxx/security/encryption/basic-encryption-manager.h>
+
+#include <fstream>
+
+using namespace ndn;
+using namespace ndn::security;
+
+ContactManager::ContactManager(Ptr<ContactStorage> contactStorage)
+  : m_contactStorage(contactStorage)
+{
+  
+  m_wrapper = Ptr<Wrapper>(new Wrapper(setKeychain()));
+}
+
+ContactManager::~ContactManager()
+{
+}
+
+Ptr<Keychain>
+ContactManager::setKeychain()
+{
+  Ptr<OSXPrivatekeyStorage> privateStorage = Ptr<OSXPrivatekeyStorage>::Create();
+  Ptr<IdentityManager> identityManager = Ptr<IdentityManager>(new IdentityManager(Ptr<BasicIdentityStorage>::Create(), privateStorage));
+  Ptr<TTLCertificateCache> certificateCache = Ptr<TTLCertificateCache>(new TTLCertificateCache());
+  Ptr<SimplePolicyManager> policyManager = Ptr<SimplePolicyManager>(new SimplePolicyManager(10, certificateCache));
+  Ptr<EncryptionManager> encryptionManager = Ptr<EncryptionManager>(new BasicEncryptionManager(privateStorage, "/tmp/encryption.db"));
+  Ptr<Keychain> keychain = Ptr<Keychain>(new Keychain(identityManager, policyManager, encryptionManager));
+
+  policyManager->addVerificationPolicyRule(Ptr<IdentityPolicyRule>(new IdentityPolicyRule("^([^<PROFILE-CERT>]*)<PROFILE-CERT>",
+											  "^([^<KEY>]*)<KEY>(<>*<KSK-.*>)<ID-CERT>", 
+											  "==", "\\1", "\\1\\2", false)));
+  policyManager->addVerificationPolicyRule(Ptr<IdentityPolicyRule>(new IdentityPolicyRule("^([^<KEY>]*)<KEY>(<>*)<KSK-.*><ID-CERT>",
+											  "^([^<KEY>]*)<KEY><DSK-.*><ID-CERT>",
+											  ">", "\\1\\2", "\\1", false)));
+  policyManager->addVerificationPolicyRule(Ptr<IdentityPolicyRule>(new IdentityPolicyRule("^([^<KEY>]*)<KEY><DSK-.*><ID-CERT>",
+											  "^([^<KEY>]*)<KEY>(<>*)<KSK-.*><ID-CERT>",
+											  "==", "\\1", "\\1\\2", false)));
+
+  ifstream is ("trust-anchor.data", ios::binary);
+  is.seekg (0, ios::end);
+  ifstream::pos_type size = is.tellg();
+  char * memblock = new char [size];    
+  is.seekg (0, ios::beg);
+  is.read (memblock, size);
+  is.close();
+
+  Ptr<Blob> readBlob = Ptr<Blob>(new Blob(memblock, size));
+  Ptr<Data> readData = Data::decodeFromWire (readBlob);
+  Ptr<IdentityCertificate> anchor = Ptr<IdentityCertificate>(new IdentityCertificate(*readData));   
+  policyManager->addTrustAnchor(anchor);  
+  
+  delete memblock;
+
+  return keychain;
+}
diff --git a/src/contact-manager.h b/src/contact-manager.h
new file mode 100644
index 0000000..ddf8489
--- /dev/null
+++ b/src/contact-manager.h
@@ -0,0 +1,41 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ *                     Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#ifndef LINKNDN_CONTACT_MANAGER_H
+#define LINKNDN_CONTACT_MANAGER_H
+
+#include "contact-storage.h"
+#include "ndn.cxx/wrapper/wrapper.h"
+
+class ContactManager
+{
+public:
+  ContactManager(ndn::Ptr<ContactStorage> contactStorage);
+
+  ~ContactManager();
+
+  inline ndn::Ptr<ContactStorage>
+  getContactStorage()
+  { return m_contactStorage; }
+
+  inline ndn::Ptr<ndn::Wrapper>
+  getWrapper()
+  { return m_wrapper; }
+
+private:
+  ndn::Ptr<ndn::security::Keychain>
+  setKeychain();
+  
+private:
+  ndn::Ptr<ContactStorage> m_contactStorage;
+  ndn::Ptr<ndn::Wrapper> m_wrapper;
+};
+
+#endif
diff --git a/src/contact-storage.cpp b/src/contact-storage.cpp
index 21fcf51..3197d9c 100644
--- a/src/contact-storage.cpp
+++ b/src/contact-storage.cpp
@@ -454,6 +454,7 @@
 
   Ptr<security::IdentityCertificate> dskCert = m_identityManager->getCertificate(certificateName);
   Ptr<const signature::Sha256WithRsa> dskCertSig = boost::dynamic_pointer_cast<const signature::Sha256WithRsa>(dskCert->getSignature());
+  // HACK! KSK certificate should be retrieved from network.
   Ptr<security::IdentityCertificate> kskCert = m_identityManager->getCertificate(dskCertSig->getKeyLocator().getKeyName());
 
   vector<string> endorseList;
diff --git a/src/contactpanel.cpp b/src/contactpanel.cpp
index 985d0a8..37cd13e 100644
--- a/src/contactpanel.cpp
+++ b/src/contactpanel.cpp
@@ -28,12 +28,12 @@
 
 INIT_LOGGER("ContactPanel");
 
-ContactPanel::ContactPanel(Ptr<ContactStorage> contactStorage, QWidget *parent) 
+ContactPanel::ContactPanel(Ptr<ContactManager> contactManager, QWidget *parent) 
     : QDialog(parent)
     , ui(new Ui::ContactPanel)
-    , m_contactStorage(contactStorage)
+    , m_contactManager(contactManager)
     , m_contactListModel(new QStringListModel)
-    , m_addContactPanel(new AddContactPanel())
+    , m_addContactPanel(new AddContactPanel(contactManager))
 {
   
     ui->setupUi(this);
@@ -44,7 +44,7 @@
     db.setDatabaseName(path);
     bool ok = db.open();
 
-    m_profileEditor = new ProfileEditor(m_contactStorage);
+    m_profileEditor = new ProfileEditor(m_contactManager->getContactStorage());
 
     QStringList contactNameList;
     contactNameList << "Alex" << "Wentao" << "Yingdi";
diff --git a/src/contactpanel.h b/src/contactpanel.h
index 4dd78d3..5e20ee5 100644
--- a/src/contactpanel.h
+++ b/src/contactpanel.h
@@ -19,7 +19,7 @@
 #include "addcontactpanel.h"
 
 #ifndef Q_MOC_RUN
-#include "contact-storage.h"
+#include "contact-manager.h"
 #endif
 
 namespace Ui {
@@ -31,7 +31,7 @@
     Q_OBJECT
 
 public:
-  explicit ContactPanel(ndn::Ptr<ContactStorage> contactStorage, QWidget *parent = 0);
+  explicit ContactPanel(ndn::Ptr<ContactManager> contactManager, QWidget *parent = 0);
   ~ContactPanel();
 
 private slots:
@@ -47,7 +47,7 @@
 
 private:
   Ui::ContactPanel *ui;
-  ndn::Ptr<ContactStorage> m_contactStorage;
+  ndn::Ptr<ContactManager> m_contactManager;
   QStringListModel* m_contactListModel;
   ProfileEditor* m_profileEditor;
   AddContactPanel* m_addContactPanel;
diff --git a/src/main.cpp b/src/main.cpp
index 7e60c8a..dbf3747 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -14,6 +14,7 @@
 #include "chronochat.h"
 #include "contactpanel.h"
 #include "contact-storage.h"
+#include "contact-manager.h"
 #include <ndn.cxx/security/identity/identity-manager.h>
 #include <ndn.cxx/security/identity/osx-privatekey-storage.h>
 #include <ndn.cxx/security/identity/basic-identity-storage.h>
@@ -34,7 +35,9 @@
   Ptr<security::OSXPrivatekeyStorage> privateStorage = Ptr<security::OSXPrivatekeyStorage>::Create();
   Ptr<security::IdentityManager> identityManager = Ptr<security::IdentityManager>(new security::IdentityManager(publicStorage, privateStorage));
   Ptr<ContactStorage> contactStorage = Ptr<ContactStorage>(new ContactStorage(identityManager));
-  ContactPanel contactPanel(contactStorage);
+  Ptr<ContactManager> contactManager = Ptr<ContactManager>(new ContactManager(contactStorage));
+  ContactPanel contactPanel(contactManager);
+
 
   contactPanel.show ();
   contactPanel.activateWindow ();
