diff --git a/src/client-module.hpp b/src/client-module.hpp
index 5293b9a..e285ce2 100644
--- a/src/client-module.hpp
+++ b/src/client-module.hpp
@@ -29,6 +29,7 @@
 
 class RequestState
 {
+
 public:
   ClientCaItem m_ca;
   security::Key m_key;
@@ -57,6 +58,8 @@
     using std::runtime_error::runtime_error;
   };
 
+  using LocalhostListCallback = function<void (const ClientConfig&)>;
+  using ListCallback = function<void (const std::list<Name>&, const Name&, const Name&)>;
   using RequestCallback = function<void (const shared_ptr<RequestState>&)>;
   using ErrorCallback = function<void (const std::string&)>;
 
@@ -70,6 +73,37 @@
     return m_config;
   }
 
+  /**
+   * @brief Send /CA-prefix/CA/_DOWNLOAD/ANCHOR to get CA's latest anchor with the config
+   */
+  void
+  requestCaTrustAnchor(const Name& caName, const DataCallback& trustAnchorCallback,
+                       const ErrorCallback& errorCallback);
+
+  /**
+   * @brief Send /localhost/CA/List to query local available CAs
+   *
+   * For more information:
+   *   https://github.com/named-data/ndncert/wiki/Intra-Node-Design
+   */
+  void
+  requestLocalhostList(const LocalhostListCallback& listCallback, const ErrorCallback& errorCallback);
+
+  /**
+   * @brief Handle the list request response
+   */
+  void
+  handleLocalhostListResponse(const Interest& request, const Data& reply,
+                              const LocalhostListCallback& listCallback, const ErrorCallback& errorCallback);
+
+  void
+  requestList(const ClientCaItem& ca, const std::string& additionalInfo,
+              const ListCallback& listCallback, const ErrorCallback& errorCallback);
+
+  void
+  handleListResponse(const Interest& request, const Data& reply, const ClientCaItem& ca,
+                     const ListCallback& listCallback, const ErrorCallback& errorCallback);
+
   void
   sendProbe(const ClientCaItem& ca, const std::string& probeInfo,
             const RequestCallback& requestCallback, const ErrorCallback& errorCallback);
@@ -136,8 +170,8 @@
 
 protected:
   virtual void
-  onTimeout(const Interest& interest, int nRetriesLeft, const DataCallback& dataCallback,
-            const RequestCallback& requestCallback, const ErrorCallback& errorCallback);
+  onTimeout(const Interest& interest, int nRetriesLeft,
+            const DataCallback& dataCallback, const ErrorCallback& errorCallback);
 
   virtual void
   onNack(const Interest& interest, const lp::Nack& nack, const ErrorCallback& errorCallback);
