diff --git a/tools/ndncert-ca-server.cpp b/tools/ndncert-ca-server.cpp
index 17bf0f0..3776183 100644
--- a/tools/ndncert-ca-server.cpp
+++ b/tools/ndncert-ca-server.cpp
@@ -31,6 +31,7 @@
 
 namespace ndn {
 namespace ndncert {
+namespace ca {
 
 Face face;
 security::KeyChain keyChain;
@@ -122,14 +123,14 @@
 
   if (wantRepoOut) {
     writeDataToRepo(profileData);
-    ca.setStatusUpdateCallback([&](const CaState& request) {
+    ca.setStatusUpdateCallback([&](const RequestState& request) {
       if (request.m_status == Status::SUCCESS && request.m_requestType == RequestType::NEW) {
         writeDataToRepo(request.m_cert);
       }
     });
   }
   else {
-    ca.setStatusUpdateCallback([&](const CaState& request) {
+    ca.setStatusUpdateCallback([&](const RequestState& request) {
       if (request.m_status == Status::SUCCESS && request.m_requestType == RequestType::NEW) {
         cachedCertificates[request.m_cert.getName()] = request.m_cert;
       }
@@ -152,11 +153,12 @@
   return 0;
 }
 
+} // namespace ca
 } // namespace ndncert
 } // namespace ndn
 
 int
 main(int argc, char* argv[])
 {
-  return ndn::ndncert::main(argc, argv);
+  return ndn::ndncert::ca::main(argc, argv);
 }
diff --git a/tools/ndncert-ca-status.cpp b/tools/ndncert-ca-status.cpp
index 4943f9b..0db2353 100644
--- a/tools/ndncert-ca-status.cpp
+++ b/tools/ndncert-ca-status.cpp
@@ -27,6 +27,7 @@
 
 namespace ndn {
 namespace ndncert {
+namespace ca {
 
 int
 main(int argc, char* argv[])
@@ -61,7 +62,7 @@
   }
 
   CaSqlite storage(Name(caNameString), "");
-  std::list<CaState> requestList;
+  std::list<RequestState> requestList;
   requestList = storage.listAllRequests();
   std::cerr << "The pending requests are :" << std::endl;
   for (const auto& entry : requestList) {
@@ -72,11 +73,12 @@
   return 0;
 }
 
+} // namespace ca
 } // namespace ndncert
 } // namespace ndn
 
 int
 main(int argc, char* argv[])
 {
-  return ndn::ndncert::main(argc, argv);
+  return ndn::ndncert::ca::main(argc, argv);
 }
