diff --git a/src/protocol-detail/error.cpp b/src/protocol-detail/error.cpp
index 0b24eec..739c3b7 100644
--- a/src/protocol-detail/error.cpp
+++ b/src/protocol-detail/error.cpp
@@ -24,7 +24,7 @@
 namespace ndncert {
 
 Block
-ERROR::encodeDataContent(Error errorCode, const std::string& description)
+ErrorTLV::encodeDataContent(ErrorCode errorCode, const std::string& description)
 {
   Block response = makeEmptyBlock(tlv::Content);
   response.push_back(makeNonNegativeIntegerBlock(tlv_error_code, static_cast<size_t>(errorCode)));
@@ -33,11 +33,11 @@
   return response;
 }
 
-std::tuple<Error, std::string>
-ERROR::decodefromDataContent(const Block& block)
+std::tuple<ErrorCode, std::string>
+ErrorTLV::decodefromDataContent(const Block& block)
 {
   block.parse();
-  Error error = static_cast<Error>(readNonNegativeInteger(block.get(tlv_error_code)));
+  ErrorCode error = static_cast<ErrorCode>(readNonNegativeInteger(block.get(tlv_error_code)));
   auto description = readString(block.get(tlv_error_info));
   return std::make_tuple(error, description);
 }
diff --git a/src/protocol-detail/error.hpp b/src/protocol-detail/error.hpp
index c03ec05..1234233 100644
--- a/src/protocol-detail/error.hpp
+++ b/src/protocol-detail/error.hpp
@@ -27,18 +27,18 @@
 namespace ndn {
 namespace ndncert {
 
-class ERROR {
+class ErrorTLV {
 public:
   /**
    * Encode error information into a Data content TLV
    */
   static Block
-  encodeDataContent(Error errorCode, const std::string& description);
+  encodeDataContent(ErrorCode errorCode, const std::string& description);
 
   /**
    * Decode error information from Data content TLV
    */
-  static std::tuple<Error, std::string>
+  static std::tuple<ErrorCode, std::string>
   decodefromDataContent(const Block& block);
 };
 
