diff --git a/src/app/name-dig.hpp b/src/app/name-dig.hpp
index 475cf26..3f07a1e 100644
--- a/src/app/name-dig.hpp
+++ b/src/app/name-dig.hpp
@@ -27,7 +27,8 @@
 namespace ndn {
 namespace ndns {
 
-class NameDig: public NDNApp {
+class NameDig: public NDNApp
+{
 public:
   NameDig(const char *programName, const char *prefix);
   virtual ~NameDig();
@@ -35,7 +36,6 @@
   void
   onData(const ndn::Interest& interest, Data& data);
 
-
   void
   onTimeout(const ndn::Interest& interest);
 
@@ -45,45 +45,63 @@
   void
   run();
 
-  const vector<RR>& getRrs() const {
+  const vector<RR>& getRrs() const
+  {
     return m_rrs;
   }
 
-  void setRrs(const vector<RR>& rrs) {
+  void setRrs(const vector<RR>& rrs)
+  {
     m_rrs = rrs;
   }
 
-  const Name& getResolverName() const {
+  const Name& getResolverName() const
+  {
     return m_resolverName;
   }
 
-  void setResolverName(const Name& resolverName) {
+  void setResolverName(const Name& resolverName)
+  {
     m_resolverName = resolverName;
   }
 
-
-
-  const Name& getDstLabel() const {
+  const Name& getDstLabel() const
+  {
     return m_dstLabel;
   }
 
-  void setDstLabel(const Name& dstLabel) {
+  void setDstLabel(const Name& dstLabel)
+  {
     m_dstLabel = dstLabel;
   }
 
-  RR::RRType getRrType() const {
+  RR::RRType getRrType() const
+  {
     return m_rrType;
   }
 
-  void setRrType(RR::RRType rrType) {
+  void setRrType(RR::RRType rrType)
+  {
     m_rrType = rrType;
   }
 
+  const Response& getResponse() const
+  {
+    return response;
+  }
+
+  void setResponse(const Response& response)
+  {
+    this->response = response;
+  }
+
 private:
   Name m_resolverName;
   Name m_dstLabel;
   RR::RRType m_rrType;
   vector<RR> m_rrs;
+
+  Response response;
 };
 
 } /* namespace ndns */
