diff --git a/tests/unit/clients/iterative-query-controller.cpp b/tests/unit/clients/iterative-query-controller.cpp
index 93bbb4e..16087e5 100644
--- a/tests/unit/clients/iterative-query-controller.cpp
+++ b/tests/unit/clients/iterative-query-controller.cpp
@@ -67,7 +67,6 @@
   ndn::util::DummyClientFace producerFace;
   ndn::util::DummyClientFace consumerFace;
 
-  Name hint;
   Validator validator;
   ndns::NameServer top;
   ndns::NameServer net;
@@ -82,7 +81,6 @@
   using std::string;
   using ndns::NameServer;
 
-  string hint;
   Name name = m_ndnsim.getName();
   Name dstLabel(name.append("www"));
   name::Component rrType("TXT");
diff --git a/tests/unit/clients/query.cpp b/tests/unit/clients/query.cpp
index 40fdfc3..0e4a1e4 100644
--- a/tests/unit/clients/query.cpp
+++ b/tests/unit/clients/query.cpp
@@ -31,13 +31,11 @@
 {
   Name zone("/net");
   name::Component qType = ndns::label::NDNS_ITERATIVE_QUERY;
-  Name hint;
-  ndns::Query q(hint, zone, qType);
+  ndns::Query q(zone, qType);
 
   q.setRrLabel(Name("/ndnsim/www"));
   BOOST_CHECK_EQUAL(q.getRrLabel(), Name("ndnsim/www"));
   BOOST_CHECK_EQUAL(q.getRrLabel(), Name("/ndnsim/www"));
-  BOOST_CHECK_EQUAL(q.getHint(), hint);
   BOOST_CHECK_EQUAL(q.getZone(), zone);
   BOOST_CHECK_EQUAL(q.getQueryType(), qType);
 
@@ -46,23 +44,22 @@
 
   Interest interest = q.toInterest();
 
-  ndns::Query q2(hint, zone, qType);
-  BOOST_CHECK_EQUAL(q2.fromInterest(hint, zone, interest), true);
+  ndns::Query q2(zone, qType);
+  BOOST_CHECK_EQUAL(q2.fromInterest(zone, interest), true);
 
   ndns::Query q3;
-  BOOST_CHECK_EQUAL(q3.fromInterest(hint, zone, interest), true);
+  BOOST_CHECK_EQUAL(q3.fromInterest(zone, interest), true);
 
   BOOST_CHECK_EQUAL(q, q3);
   BOOST_CHECK_EQUAL(q, q2);
 
-  hint = Name("att");
-  ndns::Query q4(hint, zone, qType);
+  ndns::Query q4(zone, qType);
   q4.setRrLabel("/ndnsim/www");
   q4.setRrType(ndns::label::TXT_RR_TYPE);
   interest = q4.toInterest();
   ndns::Query q5;
 
-  BOOST_CHECK_EQUAL(q5.fromInterest(hint, zone, interest), true);
+  BOOST_CHECK_EQUAL(q5.fromInterest(zone, interest), true);
   BOOST_CHECK_EQUAL(q4, q5);
   BOOST_CHECK_NE(q2, q4);
  }
diff --git a/tests/unit/clients/response.cpp b/tests/unit/clients/response.cpp
index 5950063..c575c85 100644
--- a/tests/unit/clients/response.cpp
+++ b/tests/unit/clients/response.cpp
@@ -29,7 +29,6 @@
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
-  Name hint;
   Name zone("/net");
   name::Component qType = ndns::label::NDNS_ITERATIVE_QUERY;
 
@@ -54,7 +53,7 @@
   // m_keyChain.sign(*data);
 
   ndns::Response r2;
-  BOOST_CHECK_EQUAL(r2.fromData(hint, zone, *data), true);
+  BOOST_CHECK_EQUAL(r2.fromData(zone, *data), true);
   BOOST_CHECK_EQUAL(r, r2);
 
   ndns::Response r4(zone, qType);
@@ -76,7 +75,7 @@
 
   ndns::Response r5(zone, qType);
 
-  BOOST_CHECK_EQUAL(r5.fromData(hint, zone, *data), true);
+  BOOST_CHECK_EQUAL(r5.fromData(zone, *data), true);
   BOOST_CHECK_EQUAL(r4, r5);
  }
 
diff --git a/tests/unit/daemon/name-server.cpp b/tests/unit/daemon/name-server.cpp
index 820dbd2..c081103 100644
--- a/tests/unit/daemon/name-server.cpp
+++ b/tests/unit/daemon/name-server.cpp
@@ -53,7 +53,6 @@
 
 public:
   ndn::util::DummyClientFace face;
-  Name hint;
   const Name& zone;
   Validator validator;
   ndns::NameServer server;
@@ -63,7 +62,7 @@
 
 BOOST_AUTO_TEST_CASE(NdnsQuery)
 {
-  Query q(hint, zone, ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(zone, ndns::label::NDNS_ITERATIVE_QUERY);
   q.setRrLabel(Name("net"));
   q.setRrType(ndns::label::NS_RR_TYPE);
 
@@ -75,7 +74,7 @@
     BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
 
     Response resp;
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RESP);
   });
 
@@ -88,7 +87,7 @@
 
 BOOST_AUTO_TEST_CASE(KeyQuery)
 {
-  Query q(hint, zone, ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(zone, ndns::label::NDNS_ITERATIVE_QUERY);
   q.setQueryType(ndns::label::NDNS_CERT_QUERY);
   q.setRrType(ndns::label::CERT_RR_TYPE);
 
@@ -101,7 +100,7 @@
     BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
 
     Response resp;
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_NACK);
   });
 
@@ -115,7 +114,7 @@
     BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
 
     Response resp;
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RAW);
   });
 
@@ -133,7 +132,7 @@
     ++nDataBack;
 
     Response resp;
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RAW);
   });
 
@@ -147,7 +146,7 @@
     ++nDataBack;
 
     Response resp;
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_NACK);
   });
 
@@ -172,7 +171,7 @@
   shared_ptr<Data> data = re.toData();
   m_keyChain.sign(*data, m_certName);
 
-  Query q(Name(hint), Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
   const Block& block = data->wireEncode();
   Name name;
   name.append(block);
@@ -188,7 +187,7 @@
     BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
     Response resp;
 
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RESP); // by default NDNS_RAW is enough
     BOOST_CHECK_GT(resp.getRrs().size(), 0);
     Block block = resp.getRrs()[0];
@@ -224,7 +223,7 @@
   shared_ptr<Data> data = re.toData();
   m_keyChain.sign(*data, m_certName);
 
-  Query q(Name(hint), Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
   const Block& block = data->wireEncode();
   Name name;
   name.append(block);
@@ -240,7 +239,7 @@
     BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
     Response resp;
 
-    BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+    BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
     BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RESP); // by default NDNS_RAW is enough
     BOOST_CHECK_GT(resp.getRrs().size(), 0);
     Block block = resp.getRrs()[0];
@@ -300,7 +299,7 @@
   shared_ptr<Data> data = re.toData();
   m_keyChain.sign(*data, dskCert->getName());
 
-  Query q(Name(hint), Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
   const Block& block = data->wireEncode();
   Name name;
   name.append(block);
@@ -356,7 +355,6 @@
   boost::asio::io_service io;
   ndn::util::DummyClientFace face;
   ndn::util::DummyClientFace validatorFace;
-  Name hint;
   const Name& zone;
   Validator validator;
   ndns::NameServer server;
@@ -403,7 +401,7 @@
   shared_ptr<Data> data = re.toData();
   m_keyChain.sign(*data, dskCert->getName());
 
-  Query q(Name(hint), Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
+  Query q(Name(zone), ndns::label::NDNS_ITERATIVE_QUERY);
   const Block& block = data->wireEncode();
   Name name;
   name.append(block);
@@ -428,7 +426,7 @@
       BOOST_CHECK_EQUAL(data.getName().getPrefix(-1), q.toInterest().getName());
       Response resp;
 
-      BOOST_CHECK_NO_THROW(resp.fromData(hint, zone, data));
+      BOOST_CHECK_NO_THROW(resp.fromData(zone, data));
       BOOST_CHECK_EQUAL(resp.getNdnsType(), NDNS_RESP); // by default NDNS_RAW is enough
       BOOST_CHECK_GT(resp.getRrs().size(), 0);
       Block block = resp.getRrs()[0];
diff --git a/tests/unit/mgmt/management-tool.cpp b/tests/unit/mgmt/management-tool.cpp
index b61ac86..5af6c33 100644
--- a/tests/unit/mgmt/management-tool.cpp
+++ b/tests/unit/mgmt/management-tool.cpp
@@ -188,7 +188,7 @@
     Rrset rrset = findRrSet(zone, label, type);
     Data data(rrset.getData());
     Response resp;
-    resp.fromData("", zone.getName(), data);
+    resp.fromData(zone.getName(), data);
     return resp;
   }
 
diff --git a/tests/unit/ndns-label.cpp b/tests/unit/ndns-label.cpp
index 719d786..cfd650c 100644
--- a/tests/unit/ndns-label.cpp
+++ b/tests/unit/ndns-label.cpp
@@ -30,19 +30,18 @@
 BOOST_AUTO_TEST_CASE(MatchInterest)
 {
   using namespace label;
-  Name hint("/att");
   Name zone("/net/ndnsim");
 
-  Interest interest1("/att/%F0./net/ndnsim/NDNS/www/dsk-111/NS");
-  Interest interest2("/att/%F0./net/ndnsim/NDNS/www/dsk-111/NS/%FD%00");
+  Interest interest1("/net/ndnsim/NDNS/www/dsk-111/NS");
+  Interest interest2("/net/ndnsim/NDNS/www/dsk-111/NS/%FD%00");
 
   MatchResult re;
-  BOOST_CHECK_EQUAL(matchName(interest1, hint, zone, re), true);
+  BOOST_CHECK_EQUAL(matchName(interest1, zone, re), true);
   BOOST_CHECK_EQUAL(re.rrLabel, Name("/www/dsk-111"));
   BOOST_CHECK_EQUAL(re.rrType, name::Component("NS"));
   BOOST_CHECK_EQUAL(re.version, name::Component());
 
-  BOOST_CHECK_EQUAL(matchName(interest2, hint, zone, re), true);
+  BOOST_CHECK_EQUAL(matchName(interest2, zone, re), true);
   BOOST_CHECK_EQUAL(re.rrLabel, Name("/www/dsk-111"));
   BOOST_CHECK_EQUAL(re.rrType, name::Component("NS"));
   BOOST_CHECK_EQUAL(re.version, name::Component::fromEscapedString("%FD%00"));
@@ -51,13 +50,12 @@
 BOOST_AUTO_TEST_CASE(MatchData)
 {
   using namespace label;
-  Name hint("/att");
   Name zone("/net/ndnsim");
 
-  Data data1("/att/%F0./net/ndnsim/NDNS/www/dsk-111/NS/%FD%00");
+  Data data1("/net/ndnsim/NDNS/www/dsk-111/NS/%FD%00");
 
   MatchResult re;
-  BOOST_CHECK_EQUAL(matchName(data1, hint, zone, re), true);
+  BOOST_CHECK_EQUAL(matchName(data1, zone, re), true);
   BOOST_CHECK_EQUAL(re.rrLabel, Name("/www/dsk-111"));
   BOOST_CHECK_EQUAL(re.rrType, name::Component("NS"));
   BOOST_REQUIRE_NO_THROW(re.version.toVersion());
