diff --git a/src/contact-storage.h b/src/contact-storage.h
index d0f5f5b..882dff5 100644
--- a/src/contact-storage.h
+++ b/src/contact-storage.h
@@ -12,7 +12,6 @@
 #define LINKNDN_CONTACT_STORAGE_H
 
 #include <sqlite3.h>
-#include "trusted-contact.h"
 #include "contact-item.h"
 #include "endorse-certificate.h"
 #include <ndn.cxx/security/identity/identity-manager.h>
@@ -35,25 +34,16 @@
   getSelfProfile(const ndn::Name& identity);
 
   void
-  addTrustedContact(const TrustedContact& trustedContact);
-  
-  void
-  addNormalContact(const ContactItem& contactItem);
+  addContact(const ContactItem& contactItem);
 
   void 
   updateAlias(const ndn::Name& identity, std::string alias);
 
-  std::vector<ndn::Ptr<TrustedContact> >
-  getAllTrustedContacts() const;
-
   std::vector<ndn::Ptr<ContactItem> >
-  getAllNormalContacts() const;
+  getAllContacts() const;
 
   ndn::Ptr<ContactItem>
-  getNormalContact(const ndn::Name& name);
-
-  ndn::Ptr<TrustedContact>
-  getTrustedContact(const ndn::Name& name);
+  getContact(const ndn::Name& name);
     
   ndn::Ptr<Profile>
   getSelfProfile(const ndn::Name& identity) const;
@@ -71,16 +61,8 @@
   bool
   doesSelfEntryExist(const ndn::Name& identity, const std::string& profileType);
 
-  inline bool
-  doesTrustedContactExist(const ndn::Name& name)
-  { return doesContactExist(name, false); }
-
-  inline bool
-  doesNormalContactExist(const ndn::Name& name)
-  { return doesContactExist(name, true); }
-
   bool
-  doesContactExist(const ndn::Name& name, bool normal);
+  doesContactExist(const ndn::Name& name);
 
 private:
   sqlite3 *m_db;
