diff --git a/src/invitation-policy-manager.h b/src/invitation-policy-manager.h
index 5684138..7d4b944 100644
--- a/src/invitation-policy-manager.h
+++ b/src/invitation-policy-manager.h
@@ -13,14 +13,16 @@
 
 #include <ndn.cxx/security/policy/policy-manager.h>
 #include <ndn.cxx/security/policy/identity-policy-rule.h>
+#include <ndn.cxx/security/cache/certificate-cache.h>
 #include <map>
 
-class InvitationPolicyManager : ndn::security::PolicyManager
+#include "endorse-certificate.h"
+
+class InvitationPolicyManager : public ndn::security::PolicyManager
 {
 public:
   InvitationPolicyManager(const int & stepLimit,                        
-                          ndn::Ptr<ndn::security::CertificateCache> certificateCache,
-                          ndn::Name signingIdentity);
+                          ndn::Ptr<ndn::security::CertificateCache> certificateCache);
 
   ~InvitationPolicyManager()
   {}
@@ -49,7 +51,7 @@
    * @param unverifiedCallback the callback function that will be called if the received data packet cannot be validated
    * @return the indication of next verification step, NULL if there is no further step
    */
-  Ptr<ValidationRequest>
+  ndn::Ptr<ndn::security::ValidationRequest>
   checkVerificationPolicy(ndn::Ptr<ndn::Data> data, 
                           const int & stepCount, 
                           const ndn::DataCallback& verifiedCallback,
@@ -70,12 +72,12 @@
    * @param dataName, the name of data to be signed
    * @return the signing identity. 
    */
-  Name 
+  ndn::Name 
   inferSigningIdentity(const ndn::Name & dataName);
 
   
   void
-  addTrustAnchor(ndn::Ptr<ndn::security::IdentityCertificate> ksk);
+  addTrustAnchor(const EndorseCertificate& selfEndorseCertificate);
 
 private:
   void 
@@ -93,10 +95,11 @@
   int m_stepLimit;
   ndn::Ptr<ndn::security::CertificateCache> m_certificateCache;
   ndn::Ptr<ndn::Regex> m_localPrefixRegex;
-  ndn::Ptr<ndn::IdentityPolicyRule> m_invitationDataRule;
-  ndn::Ptr<ndn::IdentityPolicyRule> m_dskRule;
+  ndn::Ptr<ndn::security::IdentityPolicyRule> m_invitationDataRule;
+  ndn::Ptr<ndn::security::IdentityPolicyRule> m_dskRule;
+  ndn::Ptr<ndn::Regex> m_keyNameRegex;
   ndn::Ptr<ndn::Regex> m_signingCertificateRegex;
-  std::map<ndn::Name, ndn::Ptr<ndn::security::IdentityCertificate> > m_trustAnchors;
+  std::map<ndn::Name, ndn::security::Publickey> m_trustAnchors;
   
 };
 
