diff --git a/src/security/validator.cpp b/src/security/validator.cpp
index 8b1c17f..7979120 100644
--- a/src/security/validator.cpp
+++ b/src/security/validator.cpp
@@ -144,11 +144,8 @@
   try{
     const Block &nameBlock = interestName.wireEncode();
 
-    if(nameBlock.getAll().size() != interestName.size()) //HACK!! we should change it when Name::Component is changed to derive from Block.
-      const_cast<Block&>(nameBlock).parse();
-
-    Signature sig((++nameBlock.getAll().rbegin())->blockFromValue(), 
-                  (nameBlock.getAll().rbegin())->blockFromValue());
+    Signature sig((++nameBlock.elements().rbegin())->blockFromValue(), 
+                  (nameBlock.elements().rbegin())->blockFromValue());
 
     switch(sig.getType()){
     case Signature::Sha256WithRsa:
@@ -156,7 +153,7 @@
         SignatureSha256WithRsa sigSha256Rsa(sig);
 
         return verifySignature(nameBlock.value(), 
-                               nameBlock.value_size() - (nameBlock.getAll().rbegin())->size(), 
+                               nameBlock.value_size() - (nameBlock.elements().rbegin())->size(), 
                                sigSha256Rsa, key);
       }
     default:
