diff --git a/src/common.hpp b/src/common.hpp
index 14bca91..a478820 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -1,28 +1,28 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2018,  Regents of the University of California
+ * Copyright (c) 2014-2018, Regents of the University of California
  *
- * This file is part of ndn-group-encrypt (Group-based Encryption Protocol for NDN).
- * See AUTHORS.md for complete list of ndn-group-encrypt authors and contributors.
+ * This file is part of NAC (Name-Based Access Control for NDN).
+ * See AUTHORS.md for complete list of NAC authors and contributors.
  *
- * ndn-group-encrypt is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
+ * NAC is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
  *
- * ndn-group-encrypt is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * NAC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.  See the GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License along with
- * ndn-group-encrypt, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ * NAC, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef NDN_GEP_COMMON_HPP
-#define NDN_GEP_COMMON_HPP
+#ifndef NDN_NAC_COMMON_HPP
+#define NDN_NAC_COMMON_HPP
 
 #include "config.hpp"
 
-#ifdef NDN_GEP_HAVE_TESTS
+#ifdef NDN_NAC_HAVE_TESTS
 #define VIRTUAL_WITH_TESTS virtual
 #define PUBLIC_WITH_TESTS_ELSE_PROTECTED public
 #define PUBLIC_WITH_TESTS_ELSE_PRIVATE public
@@ -34,15 +34,6 @@
 #define PROTECTED_WITH_TESTS_ELSE_PRIVATE private
 #endif
 
-/** \def DECL_OVERRIDE
- *  \brief expands to 'override' if compiler supports this feature, otherwise expands to nothing
- */
-#ifdef HAVE_CXX_OVERRIDE
-#define DECL_OVERRIDE override
-#else
-#define DECL_OVERRIDE
-#endif
-
 #include <cstddef>
 #include <list>
 #include <map>
@@ -71,37 +62,11 @@
 #include <boost/property_tree/ptree.hpp>
 
 namespace ndn {
-namespace gep {
-
-using std::size_t;
-
-using boost::noncopyable;
-
-using std::shared_ptr;
-using std::unique_ptr;
-using std::weak_ptr;
-using std::bad_weak_ptr;
-using std::make_shared;
-using std::enable_shared_from_this;
-
-using std::static_pointer_cast;
-using std::dynamic_pointer_cast;
-using std::const_pointer_cast;
-
-using std::function;
-using std::bind;
-using std::ref;
-using std::cref;
-
-using ndn::Interest;
-using ndn::Data;
-using ndn::Name;
-using ndn::Exclude;
-using ndn::Block;
+namespace nac {
 
 using security::v2::Certificate;
-using ndn::security::v2::Validator;
-using ndn::security::ValidatorNull;
+using security::v2::Validator;
+using security::ValidatorNull;
 using security::v2::DataValidationSuccessCallback;
 using security::v2::DataValidationFailureCallback;
 using security::v2::ValidationError;
@@ -110,19 +75,15 @@
 using namespace ndn::tlv;
 } // namespace tlv
 
-namespace name = ndn::name;
-namespace time = ndn::time;
-namespace signal = ndn::util::signal;
+const name::Component NAME_COMPONENT_FOR("FOR");
+const name::Component NAME_COMPONENT_READ("READ");
+const name::Component NAME_COMPONENT_SAMPLE("SAMPLE");
+const name::Component NAME_COMPONENT_ACCESS("ACCESS");
+const name::Component NAME_COMPONENT_E_KEY("E-KEY");
+const name::Component NAME_COMPONENT_D_KEY("D-KEY");
+const name::Component NAME_COMPONENT_C_KEY("C-KEY");
 
-const ndn::name::Component NAME_COMPONENT_FOR("FOR");
-const ndn::name::Component NAME_COMPONENT_READ("READ");
-const ndn::name::Component NAME_COMPONENT_SAMPLE("SAMPLE");
-const ndn::name::Component NAME_COMPONENT_ACCESS("ACCESS");
-const ndn::name::Component NAME_COMPONENT_E_KEY("E-KEY");
-const ndn::name::Component NAME_COMPONENT_D_KEY("D-KEY");
-const ndn::name::Component NAME_COMPONENT_C_KEY("C-KEY");
-
-} // namespace gep
+} // namespace nac
 } // namespace ndn
 
-#endif // NDN_GEP_COMMON_HPP
+#endif // NDN_NAC_COMMON_HPP
