further update organization

Change-Id: If8048a9225ba3eb446a15014a0535f5edd271a40
diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index 5481b2b..a6b0f7d 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -19,14 +19,14 @@
  */
 
 #include "ca-module.hpp"
-#include "protocol-detail/enc-tlv.hpp"
+#include "detail/enc-tlv.hpp"
 #include "identity-challenge/challenge-module.hpp"
 #include "name-assignments/assignment-funcs.hpp"
-#include "protocol-detail/challenge.hpp"
-#include "protocol-detail/error.hpp"
-#include "protocol-detail/info.hpp"
-#include "protocol-detail/new-renew-revoke.hpp"
-#include "protocol-detail/probe.hpp"
+#include "detail/challenge-encoder.hpp"
+#include "detail/error-encoder.hpp"
+#include "detail/info-encoder.hpp"
+#include "detail/new-renew-revoke-encoder.hpp"
+#include "detail/probe-encoder.hpp"
 #include <ndn-cxx/metadata-object.hpp>
 #include <ndn-cxx/security/signing-helpers.hpp>
 #include <ndn-cxx/security/verification-helpers.hpp>
@@ -121,7 +121,7 @@
     const auto& pib = m_keyChain.getPib();
     const auto& identity = pib.getIdentity(m_config.m_caItem.m_caPrefix);
     const auto& cert = identity.getDefaultKey().getDefaultCertificate();
-    Block contentTLV = INFO::encodeDataContent(m_config.m_caItem, cert);
+    Block contentTLV = InfoEncoder::encodeDataContent(m_config.m_caItem, cert);
 
     Name infoPacketName(m_config.m_caItem.m_caPrefix);
     infoPacketName.append("CA").append("INFO").appendVersion().appendSegment(0);
@@ -155,7 +155,7 @@
   NDN_LOG_TRACE("Received PROBE request");
 
   // process PROBE requests: collect probe parameters
-  auto parameters = PROBE::decodeApplicationParameters(request.getApplicationParameters());
+  auto parameters = ProbeEncoder::decodeApplicationParameters(request.getApplicationParameters());
   std::vector<PartialName> availableComponents;
   for (auto& item : m_config.m_nameAssignmentFuncs) {
     auto names = item->assignName(parameters);
@@ -175,7 +175,7 @@
 
   Data result;
   result.setName(request.getName());
-  result.setContent(PROBE::encodeDataContent(availableNames, m_config.m_caItem.m_maxSuffixLength, m_config.m_redirection));
+  result.setContent(ProbeEncoder::encodeDataContent(availableNames, m_config.m_caItem.m_maxSuffixLength, m_config.m_redirection));
   result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
   m_keyChain.sign(result, signingByIdentity(m_config.m_caItem.m_caPrefix));
   m_face.put(result);
@@ -192,7 +192,7 @@
   std::string ecdhPub;
   shared_ptr<security::Certificate> clientCert;
   try {
-    NEW_RENEW_REVOKE::decodeApplicationParameters(parameterTLV, requestType, ecdhPub, clientCert);
+    NewRenewRevokeEncoder::decodeApplicationParameters(parameterTLV, requestType, ecdhPub, clientCert);
   }
   catch (const std::exception& e) {
     if (!parameterTLV.hasValue()) {
@@ -295,7 +295,7 @@
   hmac_sha256(certNameTlv.wire(), certNameTlv.size(), m_requestIdGenKey, 32, requestIdData);
   CaState requestState(m_config.m_caItem.m_caPrefix, toHex(requestIdData, 32),
                        requestType, Status::BEFORE_CHALLENGE, *clientCert,
-                       makeBinaryBlock(tlv::ContentType_Key, aesKey, sizeof(aesKey)));
+                       makeBinaryBlock(ndn::tlv::ContentType_Key, aesKey, sizeof(aesKey)));
   try {
     m_storage->addRequest(requestState);
   }
@@ -308,7 +308,7 @@
   Data result;
   result.setName(request.getName());
   result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
-  result.setContent(NEW_RENEW_REVOKE::encodeDataContent(myEcdhPubKeyBase64,
+  result.setContent(NewRenewRevokeEncoder::encodeDataContent(myEcdhPubKeyBase64,
                                                         std::to_string(saltInt),
                                                         requestState,
                                                         m_config.m_caItem.m_supportedChallenges));
@@ -387,7 +387,7 @@
       requestState.m_status = Status::SUCCESS;
       m_storage->deleteRequest(requestState.m_requestId);
 
-      payload = CHALLENGE::encodeDataContent(requestState);
+      payload = ChallengeEncoder::encodeDataContent(requestState);
       payload.parse();
       payload.push_back(makeNestedBlock(tlv::IssuedCertName, issuedCert.getName()));
       payload.encode();
@@ -397,20 +397,20 @@
       requestState.m_status = Status::SUCCESS;
       m_storage->deleteRequest(requestState.m_requestId);
 
-      payload = CHALLENGE::encodeDataContent(requestState);
+      payload = ChallengeEncoder::encodeDataContent(requestState);
       NDN_LOG_TRACE("Challenge succeeded. Certificate has been revoked");
     }
   }
   else {
     m_storage->updateRequest(requestState);
-    payload = CHALLENGE::encodeDataContent(requestState);
+    payload = ChallengeEncoder::encodeDataContent(requestState);
     NDN_LOG_TRACE("No failure no success. Challenge moves on");
   }
 
   Data result;
   result.setName(request.getName());
   result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
-  auto contentBlock = encodeBlockWithAesGcm128(tlv::Content, requestState.m_encryptionKey.value(), payload.value(),
+  auto contentBlock = encodeBlockWithAesGcm128(ndn::tlv::Content, requestState.m_encryptionKey.value(), payload.value(),
                                                payload.value_size(), (uint8_t*)"test", strlen("test"));
   result.setContent(contentBlock);
   m_keyChain.sign(result, signingByIdentity(m_config.m_caItem.m_caPrefix));
@@ -476,7 +476,7 @@
   Data result;
   result.setName(name);
   result.setFreshnessPeriod(DEFAULT_DATA_FRESHNESS_PERIOD);
-  result.setContent(ErrorTLV::encodeDataContent(error, errorInfo));
+  result.setContent(ErrorEncoder::encodeDataContent(error, errorInfo));
   m_keyChain.sign(result, signingByIdentity(m_config.m_caItem.m_caPrefix));
   return result;
 }
diff --git a/src/ca-module.hpp b/src/ca-module.hpp
index 3fb79cb..118a85e 100644
--- a/src/ca-module.hpp
+++ b/src/ca-module.hpp
@@ -22,7 +22,7 @@
 #define NDNCERT_CA_MODULE_HPP
 
 #include "configuration.hpp"
-#include "protocol-detail/crypto-helper.hpp"
+#include "detail/crypto-helper.hpp"
 #include "ca-detail/ca-storage.hpp"
 
 namespace ndn {
diff --git a/src/ca-state.hpp b/src/ca-state.hpp
index 4c99185..2204f1c 100644
--- a/src/ca-state.hpp
+++ b/src/ca-state.hpp
@@ -21,7 +21,7 @@
 #ifndef NDNCERT_CA_STATE_HPP
 #define NDNCERT_CA_STATE_HPP
 
-#include "protocol-detail/ndncert-common.hpp"
+#include "detail/ndncert-common.hpp"
 
 namespace ndn {
 namespace ndncert {
diff --git a/src/protocol-detail/challenge.cpp b/src/detail/challenge-encoder.cpp
similarity index 92%
rename from src/protocol-detail/challenge.cpp
rename to src/detail/challenge-encoder.cpp
index d49ca4e..658cbd8 100644
--- a/src/protocol-detail/challenge.cpp
+++ b/src/detail/challenge-encoder.cpp
@@ -18,13 +18,13 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "challenge.hpp"
+#include "challenge-encoder.hpp"
 
 namespace ndn {
 namespace ndncert {
 
 Block
-CHALLENGE::encodeDataContent(const CaState& request)
+ChallengeEncoder::encodeDataContent(const CaState& request)
 {
   Block response = makeEmptyBlock(tlv::EncryptedPayload);
   response.push_back(makeNonNegativeIntegerBlock(tlv::Status, static_cast<size_t>(request.m_status)));
@@ -40,7 +40,7 @@
 }
 
 void
-CHALLENGE::decodeDataContent(const Block& data, RequesterState& state)
+ChallengeEncoder::decodeDataContent(const Block& data, RequesterState& state)
 {
   data.parse();
   state.m_status = static_cast<Status>(readNonNegativeInteger(data.get(tlv::Status)));
diff --git a/src/protocol-detail/challenge.hpp b/src/detail/challenge-encoder.hpp
similarity index 88%
rename from src/protocol-detail/challenge.hpp
rename to src/detail/challenge-encoder.hpp
index 7d78009..f66d9cb 100644
--- a/src/protocol-detail/challenge.hpp
+++ b/src/detail/challenge-encoder.hpp
@@ -18,8 +18,8 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#ifndef NDNCERT_PROTOCOL_DETAIL_CHALLENGE_HPP
-#define NDNCERT_PROTOCOL_DETAIL_CHALLENGE_HPP
+#ifndef NDNCERT_DETAIL_CHALLENGE_STEP_HPP
+#define NDNCERT_DETAIL_CHALLENGE_STEP_HPP
 
 #include "../ca-state.hpp"
 #include "../requester-state.hpp"
@@ -27,7 +27,7 @@
 namespace ndn {
 namespace ndncert {
 
-class CHALLENGE
+class ChallengeEncoder
 {
 public:
   static Block
@@ -40,4 +40,4 @@
 } // namespace ndncert
 } // namespace ndn
 
-#endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
+#endif // NDNCERT_DETAIL_CHALLENGE_STEP_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/crypto-helper.cpp b/src/detail/crypto-helper.cpp
similarity index 100%
rename from src/protocol-detail/crypto-helper.cpp
rename to src/detail/crypto-helper.cpp
diff --git a/src/protocol-detail/crypto-helper.hpp b/src/detail/crypto-helper.hpp
similarity index 100%
rename from src/protocol-detail/crypto-helper.hpp
rename to src/detail/crypto-helper.hpp
diff --git a/src/protocol-detail/enc-tlv.cpp b/src/detail/enc-tlv.cpp
similarity index 100%
rename from src/protocol-detail/enc-tlv.cpp
rename to src/detail/enc-tlv.cpp
diff --git a/src/protocol-detail/enc-tlv.hpp b/src/detail/enc-tlv.hpp
similarity index 100%
rename from src/protocol-detail/enc-tlv.hpp
rename to src/detail/enc-tlv.hpp
diff --git a/src/protocol-detail/error.cpp b/src/detail/error-encoder.cpp
similarity index 87%
rename from src/protocol-detail/error.cpp
rename to src/detail/error-encoder.cpp
index 266e4e6..84b7866 100644
--- a/src/protocol-detail/error.cpp
+++ b/src/detail/error-encoder.cpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "error.hpp"
+#include "error-encoder.hpp"
 
 namespace ndn {
 namespace ndncert {
 
 Block
-ErrorTLV::encodeDataContent(ErrorCode errorCode, const std::string& description)
+ErrorEncoder::encodeDataContent(ErrorCode errorCode, const std::string& description)
 {
-  Block response = makeEmptyBlock(tlv::Content);
+  Block response = makeEmptyBlock(ndn::tlv::Content);
   response.push_back(makeNonNegativeIntegerBlock(tlv::ErrorCode, static_cast<size_t>(errorCode)));
   response.push_back(makeStringBlock(tlv::ErrorInfo, description));
   response.encode();
@@ -34,7 +34,7 @@
 }
 
 std::tuple<ErrorCode, std::string>
-ErrorTLV::decodefromDataContent(const Block& block)
+ErrorEncoder::decodefromDataContent(const Block& block)
 {
   block.parse();
   if (block.find(tlv::ErrorCode) == block.elements_end()) {
diff --git a/src/protocol-detail/error.hpp b/src/detail/error-encoder.hpp
similarity index 90%
rename from src/protocol-detail/error.hpp
rename to src/detail/error-encoder.hpp
index ae3a027..ade9fb3 100644
--- a/src/protocol-detail/error.hpp
+++ b/src/detail/error-encoder.hpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#ifndef NDNCERT_PROTOCOL_DETAIL_ERROR_HPP
-#define NDNCERT_PROTOCOL_DETAIL_ERROR_HPP
+#ifndef NDNCERT_DETAIL_ERROR_ENCODER_HPP
+#define NDNCERT_DETAIL_ERROR_ENCODER_HPP
 
 #include "../configuration.hpp"
 
 namespace ndn {
 namespace ndncert {
 
-class ErrorTLV
+class ErrorEncoder
 {
 public:
   /**
@@ -45,4 +45,4 @@
 } // namespace ndncert
 } // namespace ndn
 
-#endif // NDNCERT_PROTOCOL_ERROR_HPP
\ No newline at end of file
+#endif // NDNCERT_DETAIL_ERROR_ENCODER_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/info.cpp b/src/detail/info-encoder.cpp
similarity index 87%
rename from src/protocol-detail/info.cpp
rename to src/detail/info-encoder.cpp
index beef51d..7939526 100644
--- a/src/protocol-detail/info.cpp
+++ b/src/detail/info-encoder.cpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "info.hpp"
+#include "info-encoder.hpp"
 
 namespace ndn {
 namespace ndncert {
 
 Block
-INFO::encodeDataContent(const CaProfile& caConfig, const security::Certificate& certificate)
+InfoEncoder::encodeDataContent(const CaProfile& caConfig, const security::Certificate& certificate)
 {
-  auto content = makeEmptyBlock(tlv::Content);
+  auto content = makeEmptyBlock(ndn::tlv::Content);
   content.push_back(makeNestedBlock(tlv::CaPrefix, caConfig.m_caPrefix));
   std::string caInfo = "";
   if (caConfig.m_caInfo == "") {
@@ -46,7 +46,7 @@
 }
 
 CaProfile
-INFO::decodeDataContent(const Block& block)
+InfoEncoder::decodeDataContent(const Block& block)
 {
   CaProfile result;
   block.parse();
@@ -54,7 +54,7 @@
     switch (item.type()) {
     case tlv::CaPrefix:
       item.parse();
-      result.m_caPrefix.wireDecode(item.get(tlv::Name));
+      result.m_caPrefix.wireDecode(item.get(ndn::tlv::Name));
       break;
     case tlv::CaInfo:
       result.m_caInfo = readString(item);
@@ -67,7 +67,7 @@
       break;
     case tlv::CaCertificate:
       item.parse();
-      result.m_cert = std::make_shared<security::Certificate>(item.get(tlv::Data));
+      result.m_cert = std::make_shared<security::Certificate>(item.get(ndn::tlv::Data));
       break;
     default:
       continue;
diff --git a/src/protocol-detail/info.hpp b/src/detail/info-encoder.hpp
similarity index 90%
rename from src/protocol-detail/info.hpp
rename to src/detail/info-encoder.hpp
index 67a38bf..8c3ed09 100644
--- a/src/protocol-detail/info.hpp
+++ b/src/detail/info-encoder.hpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#ifndef NDNCERT_PROTOCOL_DETAIL_INFO_HPP
-#define NDNCERT_PROTOCOL_DETAIL_INFO_HPP
+#ifndef NDNCERT_DETAIL_INFO_ENCODER_HPP
+#define NDNCERT_DETAIL_INFO_ENCODER_HPP
 
 #include "../configuration.hpp"
 
 namespace ndn {
 namespace ndncert {
 
-class INFO
+class InfoEncoder
 {
 public:
   /**
@@ -45,4 +45,4 @@
 } // namespace ndncert
 } // namespace ndn
 
-#endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
+#endif // NDNCERT_DETAIL_INFO_ENCODER_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/ndncert-common.cpp b/src/detail/ndncert-common.cpp
similarity index 100%
rename from src/protocol-detail/ndncert-common.cpp
rename to src/detail/ndncert-common.cpp
diff --git a/src/protocol-detail/ndncert-common.hpp b/src/detail/ndncert-common.hpp
similarity index 81%
rename from src/protocol-detail/ndncert-common.hpp
rename to src/detail/ndncert-common.hpp
index cf19bb9..5805f74 100644
--- a/src/protocol-detail/ndncert-common.hpp
+++ b/src/detail/ndncert-common.hpp
@@ -58,38 +58,41 @@
 #include <boost/property_tree/ptree.hpp>
 
 namespace ndn {
-namespace tlv {
-  enum : uint32_t {
-    CaPrefix = 129,
-    CaInfo = 131,
-    ParameterKey = 133,
-    ParameterValue = 135,
-    CaCertificate = 137,
-    MaxValidityPeriod = 139,
-    ProbeResponse = 141,
-    MaxSuffixLength = 143,
-    EcdhPub = 145,
-    CertRequest = 147,
-    Salt = 149,
-    RequestId = 151,
-    Challenge = 153,
-    Status = 155,
-    InitializationVector = 157,
-    EncryptedPayload = 159,
-    SelectedChallenge = 161,
-    ChallengeStatus = 163,
-    RemainingTries = 165,
-    RemainingTime = 167,
-    IssuedCertName = 169,
-    ErrorCode = 171,
-    ErrorInfo = 173,
-    AuthenticationTag = 175,
-    CertToRevoke = 177,
-    ProbeRedirect = 179
- };
-} // namespace tlv
 namespace ndncert {
 
+namespace tlv {
+
+enum : uint32_t {
+  CaPrefix = 129,
+  CaInfo = 131,
+  ParameterKey = 133,
+  ParameterValue = 135,
+  CaCertificate = 137,
+  MaxValidityPeriod = 139,
+  ProbeResponse = 141,
+  MaxSuffixLength = 143,
+  EcdhPub = 145,
+  CertRequest = 147,
+  Salt = 149,
+  RequestId = 151,
+  Challenge = 153,
+  Status = 155,
+  InitializationVector = 157,
+  EncryptedPayload = 159,
+  SelectedChallenge = 161,
+  ChallengeStatus = 163,
+  RemainingTries = 165,
+  RemainingTime = 167,
+  IssuedCertName = 169,
+  ErrorCode = 171,
+  ErrorInfo = 173,
+  AuthenticationTag = 175,
+  CertToRevoke = 177,
+  ProbeRedirect = 179
+};
+
+} // namespace tlv
+
 using boost::noncopyable;
 typedef boost::property_tree::ptree JsonSection;
 
diff --git a/src/protocol-detail/new-renew-revoke.cpp b/src/detail/new-renew-revoke-encoder.cpp
similarity index 84%
rename from src/protocol-detail/new-renew-revoke.cpp
rename to src/detail/new-renew-revoke-encoder.cpp
index 8c2921e..3afe2ad 100644
--- a/src/protocol-detail/new-renew-revoke.cpp
+++ b/src/detail/new-renew-revoke-encoder.cpp
@@ -18,12 +18,10 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "new-renew-revoke.hpp"
-#include "ndncert-common.hpp"
+#include "new-renew-revoke-encoder.hpp"
 #include <ndn-cxx/security/transform/base64-encode.hpp>
 #include <ndn-cxx/security/transform/buffer-source.hpp>
 #include <ndn-cxx/security/transform/stream-sink.hpp>
-#include <ndn-cxx/util/logger.hpp>
 
 namespace ndn {
 namespace ndncert {
@@ -31,9 +29,9 @@
 NDN_LOG_INIT(ndncert.encoding.new_renew_revoke);
 
 Block
-NEW_RENEW_REVOKE::encodeApplicationParameters(RequestType requestType, const std::string& ecdhPub, const security::Certificate& certRequest)
+NewRenewRevokeEncoder::encodeApplicationParameters(RequestType requestType, const std::string& ecdhPub, const security::Certificate& certRequest)
 {
-  Block request = makeEmptyBlock(tlv::ApplicationParameters);
+  Block request = makeEmptyBlock(ndn::tlv::ApplicationParameters);
   std::stringstream ss;
   try {
     security::transform::bufferSource(certRequest.wireEncode().wire(), certRequest.wireEncode().size())
@@ -56,7 +54,7 @@
 }
 
 void
-NEW_RENEW_REVOKE::decodeApplicationParameters(const Block& payload, RequestType requestType, std::string& ecdhPub,
+NewRenewRevokeEncoder::decodeApplicationParameters(const Block& payload, RequestType requestType, std::string& ecdhPub,
                                               shared_ptr<security::Certificate>& clientCert) {
   payload.parse();
 
@@ -70,16 +68,16 @@
   }
   requestPayload.parse();
 
-  security::Certificate cert = security::Certificate(requestPayload.get(tlv::Data));
+  security::Certificate cert = security::Certificate(requestPayload.get(ndn::tlv::Data));
   clientCert =std::make_shared<security::Certificate>(cert);
 }
 
 Block
-NEW_RENEW_REVOKE::encodeDataContent(const std::string& ecdhKey, const std::string& salt,
+NewRenewRevokeEncoder::encodeDataContent(const std::string& ecdhKey, const std::string& salt,
                                     const CaState& request,
                                     const std::list<std::string>& challenges)
 {
-  Block response = makeEmptyBlock(tlv::Content);
+  Block response = makeEmptyBlock(ndn::tlv::Content);
   response.push_back(makeStringBlock(tlv::EcdhPub, ecdhKey));
   response.push_back(makeStringBlock(tlv::Salt, salt));
   response.push_back(makeStringBlock(tlv::RequestId, request.m_requestId));
@@ -91,8 +89,8 @@
   return response;
 }
 
-NEW_RENEW_REVOKE::DecodedData
-NEW_RENEW_REVOKE::decodeDataContent(const Block& content)
+NewRenewRevokeEncoder::DecodedData
+NewRenewRevokeEncoder::decodeDataContent(const Block& content)
 {
   content.parse();
   const auto& ecdhKey = readString(content.get(tlv::EcdhPub));
diff --git a/src/protocol-detail/new-renew-revoke.hpp b/src/detail/new-renew-revoke-encoder.hpp
similarity index 90%
rename from src/protocol-detail/new-renew-revoke.hpp
rename to src/detail/new-renew-revoke-encoder.hpp
index 53d60ac..075114f 100644
--- a/src/protocol-detail/new-renew-revoke.hpp
+++ b/src/detail/new-renew-revoke-encoder.hpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#ifndef NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
-#define NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
+#ifndef NDNCERT_DETAIL_NEW_RENEW_REVOKE_ENCODER_HPP
+#define NDNCERT_DETAIL_NEW_RENEW_REVOKE_ENCODER_HPP
 
 #include "../ca-state.hpp"
 
 namespace ndn {
 namespace ndncert {
 
-class NEW_RENEW_REVOKE
+class NewRenewRevokeEncoder
 {
 public:
   static Block
@@ -53,4 +53,4 @@
 } // namespace ndncert
 } // namespace ndn
 
-#endif // NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
\ No newline at end of file
+#endif // NDNCERT_DETAIL_NEW_RENEW_REVOKE_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/probe.cpp b/src/detail/probe-encoder.cpp
similarity index 85%
rename from src/protocol-detail/probe.cpp
rename to src/detail/probe-encoder.cpp
index 3426145..ce3c3fe 100644
--- a/src/protocol-detail/probe.cpp
+++ b/src/detail/probe-encoder.cpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "probe.hpp"
+#include "probe-encoder.hpp"
 
 namespace ndn {
 namespace ndncert {
 
 Block
-PROBE::encodeApplicationParameters(std::vector<std::tuple<std::string, std::string>>&& parameters)
+ProbeEncoder::encodeApplicationParameters(std::vector<std::tuple<std::string, std::string>>&& parameters)
 {
-  auto content = makeEmptyBlock(tlv::ApplicationParameters);
+  auto content = makeEmptyBlock(ndn::tlv::ApplicationParameters);
   for (size_t i = 0; i < parameters.size(); ++i) {
     content.push_back(makeStringBlock(tlv::ParameterKey, std::get<0>(parameters[i])));
     content.push_back(makeStringBlock(tlv::ParameterValue, std::get<1>(parameters[i])));
@@ -36,7 +36,7 @@
 }
 
 std::vector<std::tuple<std::string, std::string>>
-PROBE::decodeApplicationParameters(const Block& block)
+ProbeEncoder::decodeApplicationParameters(const Block& block)
 {
   std::vector<std::tuple<std::string, std::string>> result;
   block.parse();
@@ -49,10 +49,10 @@
 }
 
 Block
-PROBE::encodeDataContent(const std::vector<Name>& identifiers, boost::optional<size_t> maxSuffixLength,
+ProbeEncoder::encodeDataContent(const std::vector<Name>& identifiers, boost::optional<size_t> maxSuffixLength,
                          boost::optional<std::vector<std::shared_ptr<security::Certificate>>> redirectionItems)
 {
-  Block content = makeEmptyBlock(tlv::Content);
+  Block content = makeEmptyBlock(ndn::tlv::Content);
   for (const auto& name : identifiers) {
     Block item(tlv::ProbeResponse);
     item.push_back(name.wireEncode());
@@ -71,7 +71,7 @@
 }
 
 void
-PROBE::decodeDataContent(const Block& block,
+ProbeEncoder::decodeDataContent(const Block& block,
                          std::vector<std::pair<Name, int>>& availableNames,
                          std::vector<Name>& availableRedirection)
 {
@@ -82,7 +82,7 @@
       Name elementName;
       int maxSuffixLength = 0;
       for (const auto& subBlock: item.elements()) {
-          if (subBlock.type() == tlv::Name) {
+          if (subBlock.type() == ndn::tlv::Name) {
               if (!elementName.empty()) {
                   NDN_THROW(std::runtime_error("Invalid probe format"));
               }
diff --git a/src/protocol-detail/probe.hpp b/src/detail/probe-encoder.hpp
similarity index 91%
rename from src/protocol-detail/probe.hpp
rename to src/detail/probe-encoder.hpp
index 52e6cb6..b56e458 100644
--- a/src/protocol-detail/probe.hpp
+++ b/src/detail/probe-encoder.hpp
@@ -18,15 +18,15 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#ifndef NDNCERT_PROTOCOL_DETAIL_PROBE_HPP
-#define NDNCERT_PROTOCOL_DETAIL_PROBE_HPP
+#ifndef NDNCERT_DETAIL_PROBE_ENCODER_HPP
+#define NDNCERT_DETAIL_PROBE_ENCODER_HPP
 
 #include "../configuration.hpp"
 
 namespace ndn {
 namespace ndncert {
 
-class PROBE
+class ProbeEncoder
 {
 public:
   // For Client use
@@ -50,4 +50,4 @@
 } // namespace ndncert
 } // namespace ndn
 
-#endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
+#endif // NDNCERT_DETAIL_PROBE_ENCODER_HPP
\ No newline at end of file
diff --git a/src/requester-state.hpp b/src/requester-state.hpp
index f77b591..6e8be3d 100644
--- a/src/requester-state.hpp
+++ b/src/requester-state.hpp
@@ -21,8 +21,8 @@
 #ifndef NDNCERT_REQUESTER_STATE_HPP
 #define NDNCERT_REQUESTER_STATE_HPP
 
-#include "protocol-detail/ndncert-common.hpp"
-#include "protocol-detail/crypto-helper.hpp"
+#include "detail/ndncert-common.hpp"
+#include "detail/crypto-helper.hpp"
 #include "configuration.hpp"
 
 namespace ndn {
diff --git a/src/requester.cpp b/src/requester.cpp
index 1f67f97..632c53d 100644
--- a/src/requester.cpp
+++ b/src/requester.cpp
@@ -20,12 +20,12 @@
 
 #include "requester.hpp"
 #include "identity-challenge/challenge-module.hpp"
-#include "protocol-detail/enc-tlv.hpp"
-#include "protocol-detail/challenge.hpp"
-#include "protocol-detail/error.hpp"
-#include "protocol-detail/info.hpp"
-#include "protocol-detail/new-renew-revoke.hpp"
-#include "protocol-detail/probe.hpp"
+#include "detail/enc-tlv.hpp"
+#include "detail/challenge-encoder.hpp"
+#include "detail/error-encoder.hpp"
+#include "detail/info-encoder.hpp"
+#include "detail/new-renew-revoke-encoder.hpp"
+#include "detail/probe-encoder.hpp"
 #include <ndn-cxx/security/signing-helpers.hpp>
 #include <ndn-cxx/security/transform/base64-encode.hpp>
 #include <ndn-cxx/security/transform/buffer-source.hpp>
@@ -64,7 +64,7 @@
 boost::optional<CaProfile>
 Requester::onCaProfileResponse(const Data& reply)
 {
-  auto caItem = INFO::decodeDataContent(reply.getContent());
+  auto caItem = InfoEncoder::decodeDataContent(reply.getContent());
   if (!security::verifySignature(reply, *caItem.m_cert)) {
     NDN_LOG_ERROR("Cannot verify replied Data packet signature.");
     NDN_THROW(std::runtime_error("Cannot verify replied Data packet signature."));
@@ -76,7 +76,7 @@
 boost::optional<CaProfile>
 Requester::onCaProfileResponseAfterRedirection(const Data& reply, const Name& caCertFullName)
 {
-  auto caItem = INFO::decodeDataContent(reply.getContent());
+  auto caItem = InfoEncoder::decodeDataContent(reply.getContent());
   auto certBlock = caItem.m_cert->wireEncode();
   caItem.m_cert = std::make_shared<security::Certificate>(certBlock);
   if (caItem.m_cert->getFullName() != caCertFullName) {
@@ -94,7 +94,7 @@
   auto interest =std::make_shared<Interest>(interestName);
   interest->setMustBeFresh(true);
   interest->setCanBePrefix(false);
-  interest->setApplicationParameters(PROBE::encodeApplicationParameters(std::move(probeInfo)));
+  interest->setApplicationParameters(ProbeEncoder::encodeApplicationParameters(std::move(probeInfo)));
   return interest;
 }
 
@@ -108,7 +108,7 @@
     return;
   }
   processIfError(reply);
-  PROBE::decodeDataContent(reply.getContent(), identityNames, otherCas);
+  ProbeEncoder::decodeDataContent(reply.getContent(), identityNames, otherCas);
 }
 
 shared_ptr<Interest>
@@ -151,7 +151,7 @@
   // generate certificate request
   security::Certificate certRequest;
   certRequest.setName(Name(keyName).append("cert-request").appendVersion());
-  certRequest.setContentType(tlv::ContentType_Key);
+  certRequest.setContentType(ndn::tlv::ContentType_Key);
   certRequest.setContent(state.m_keyPair.getPublicKey().data(), state.m_keyPair.getPublicKey().size());
   SignatureInfo signatureInfo;
   signatureInfo.setValidityPeriod(security::ValidityPeriod(notBefore, notAfter));
@@ -164,7 +164,7 @@
   interest->setMustBeFresh(true);
   interest->setCanBePrefix(false);
   interest->setApplicationParameters(
-      NEW_RENEW_REVOKE::encodeApplicationParameters(RequestType::NEW, state.m_ecdh.getBase64PubKey(), certRequest));
+      NewRenewRevokeEncoder::encodeApplicationParameters(RequestType::NEW, state.m_ecdh.getBase64PubKey(), certRequest));
 
   // sign the Interest packet
   state.m_keyChain.sign(*interest, signingByKey(keyName));
@@ -184,7 +184,7 @@
   interest->setMustBeFresh(true);
   interest->setCanBePrefix(false);
   interest->setApplicationParameters(
-      NEW_RENEW_REVOKE::encodeApplicationParameters(RequestType::REVOKE, state.m_ecdh.getBase64PubKey(), certificate));
+      NewRenewRevokeEncoder::encodeApplicationParameters(RequestType::REVOKE, state.m_ecdh.getBase64PubKey(), certificate));
   return interest;
 }
 
@@ -198,7 +198,7 @@
   processIfError(reply);
 
   auto contentTLV = reply.getContent();
-  const auto& content = NEW_RENEW_REVOKE::decodeDataContent(contentTLV);
+  const auto& content = NewRenewRevokeEncoder::decodeDataContent(contentTLV);
 
   // ECDH and HKDF
   state.m_ecdh.deriveSecret(content.ecdhKey);
@@ -242,7 +242,7 @@
   interest->setCanBePrefix(false);
 
   // encrypt the Interest parameters
-  auto paramBlock = encodeBlockWithAesGcm128(tlv::ApplicationParameters, state.m_aesKey,
+  auto paramBlock = encodeBlockWithAesGcm128(ndn::tlv::ApplicationParameters, state.m_aesKey,
                                              challengeParams.value(), challengeParams.value_size(),
                                              (const uint8_t*)"test", strlen("test"));
   interest->setApplicationParameters(paramBlock);
@@ -260,7 +260,7 @@
   processIfError(reply);
   auto result = decodeBlockWithAesGcm128(reply.getContent(), state.m_aesKey, (const uint8_t*)"test", strlen("test"));
   Block contentTLV = makeBinaryBlock(tlv::EncryptedPayload, result.data(), result.size());
-  CHALLENGE::decodeDataContent(contentTLV, state);
+  ChallengeEncoder::decodeDataContent(contentTLV, state);
 }
 
 shared_ptr<Interest>
@@ -308,7 +308,7 @@
 void
 Requester::processIfError(const Data& data)
 {
-  auto errorInfo = ErrorTLV::decodefromDataContent(data.getContent());
+  auto errorInfo = ErrorEncoder::decodefromDataContent(data.getContent());
   if (std::get<0>(errorInfo) == ErrorCode::NO_ERROR) {
     return;
   }