diff --git a/src/hello-protocol.hpp b/src/hello-protocol.hpp
index a50c2b5..9ff1335 100644
--- a/src/hello-protocol.hpp
+++ b/src/hello-protocol.hpp
@@ -83,7 +83,7 @@
   void
   processInterest(const ndn::Name& name, const ndn::Interest& interest);
 
-  ndn::util::Signal<HelloProtocol, Statistics::PacketType> hpIncrementSignal;
+  ndn::signal::Signal<HelloProtocol, Statistics::PacketType> hpIncrementSignal;
 
 private:
   /*! \brief Try to contact a neighbor via Hello protocol again
@@ -126,7 +126,7 @@
   static inline const std::string INFO_COMPONENT{"INFO"};
   static inline const std::string NLSR_COMPONENT{"nlsr"};
 
-  ndn::util::Signal<HelloProtocol, const ndn::Name&> onInitialHelloDataValidated;
+  ndn::signal::Signal<HelloProtocol, const ndn::Name&> onInitialHelloDataValidated;
 
 private:
   ndn::Face& m_face;
diff --git a/src/lsdb.cpp b/src/lsdb.cpp
index 9467870..876fa57 100644
--- a/src/lsdb.cpp
+++ b/src/lsdb.cpp
@@ -438,13 +438,12 @@
   if (incomingFaceId != 0) {
     interest.setTag(std::make_shared<ndn::lp::NextHopFaceIdTag>(incomingFaceId));
   }
-  ndn::util::SegmentFetcher::Options options;
+  ndn::SegmentFetcher::Options options;
   options.interestLifetime = m_confParam.getLsaInterestLifetime();
   options.maxTimeout = m_confParam.getLsaInterestLifetime();
 
   NLSR_LOG_DEBUG("Fetching Data for LSA: " << interestName << " Seq number: " << seqNo);
-  auto fetcher = ndn::util::SegmentFetcher::start(m_face, interest,
-                                                  m_confParam.getValidator(), options);
+  auto fetcher = ndn::SegmentFetcher::start(m_face, interest, m_confParam.getValidator(), options);
 
   auto it = m_fetchers.insert(fetcher).first;
 
@@ -493,7 +492,7 @@
       // the potential for constant Interest flooding.
       ndn::time::seconds delay = m_confParam.getLsaInterestLifetime();
 
-      if (errorCode == ndn::util::SegmentFetcher::ErrorCode::INTEREST_TIMEOUT) {
+      if (errorCode == ndn::SegmentFetcher::ErrorCode::INTEREST_TIMEOUT) {
         delay = ndn::time::seconds(0);
       }
       m_scheduler.schedule(delay, std::bind(&Lsdb::expressInterest, this,
diff --git a/src/lsdb.hpp b/src/lsdb.hpp
index 634b793..2c9008d 100644
--- a/src/lsdb.hpp
+++ b/src/lsdb.hpp
@@ -321,10 +321,10 @@
   }
 
 public:
-  ndn::util::Signal<Lsdb, Statistics::PacketType> lsaIncrementSignal;
-  ndn::util::Signal<Lsdb, ndn::Data> afterSegmentValidatedSignal;
-  using AfterLsdbModified = ndn::util::Signal<Lsdb, std::shared_ptr<Lsa>, LsdbUpdate,
-                                              std::list<ndn::Name>, std::list<ndn::Name>>;
+  ndn::signal::Signal<Lsdb, Statistics::PacketType> lsaIncrementSignal;
+  ndn::signal::Signal<Lsdb, ndn::Data> afterSegmentValidatedSignal;
+  using AfterLsdbModified = ndn::signal::Signal<Lsdb, std::shared_ptr<Lsa>, LsdbUpdate,
+                                                std::list<ndn::Name>, std::list<ndn::Name>>;
   AfterLsdbModified onLsdbModified;
 
 PUBLIC_WITH_TESTS_ELSE_PRIVATE:
@@ -346,10 +346,10 @@
 
   SequencingManager m_sequencingManager;
 
-  ndn::util::signal::ScopedConnection m_onNewLsaConnection;
+  ndn::signal::ScopedConnection m_onNewLsaConnection;
 
-  std::set<std::shared_ptr<ndn::util::SegmentFetcher>> m_fetchers;
-  ndn::util::Segmenter m_segmenter;
+  std::set<std::shared_ptr<ndn::SegmentFetcher>> m_fetchers;
+  ndn::Segmenter m_segmenter;
   ndn::InMemoryStorageFifo m_segmentFifo;
 
   bool m_isBuildAdjLsaScheduled;
diff --git a/src/nlsr.hpp b/src/nlsr.hpp
index e435593..f562bc9 100644
--- a/src/nlsr.hpp
+++ b/src/nlsr.hpp
@@ -176,9 +176,9 @@
   HelloProtocol m_helloProtocol;
 
 private:
-  ndn::util::signal::ScopedConnection m_onNewLsaConnection;
-  ndn::util::signal::ScopedConnection m_onPrefixRegistrationSuccess;
-  ndn::util::signal::ScopedConnection m_onInitialHelloDataValidated;
+  ndn::signal::ScopedConnection m_onNewLsaConnection;
+  ndn::signal::ScopedConnection m_onPrefixRegistrationSuccess;
+  ndn::signal::ScopedConnection m_onInitialHelloDataValidated;
 
 PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   ndn::mgmt::Dispatcher m_dispatcher;
diff --git a/src/route/fib.hpp b/src/route/fib.hpp
index e24c61b..1a9b75f 100644
--- a/src/route/fib.hpp
+++ b/src/route/fib.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -222,7 +222,7 @@
   static inline const ndn::Name MULTICAST_STRATEGY{"/localhost/nfd/strategy/multicast"};
   static inline const ndn::Name BEST_ROUTE_STRATEGY{"/localhost/nfd/strategy/best-route"};
 
-  ndn::util::Signal<Fib, ndn::Name> onPrefixRegistrationSuccess;
+  ndn::signal::Signal<Fib, ndn::Name> onPrefixRegistrationSuccess;
 
 private:
   ndn::Scheduler& m_scheduler;
diff --git a/src/route/name-prefix-table.hpp b/src/route/name-prefix-table.hpp
index 449b928..5ac8345 100644
--- a/src/route/name-prefix-table.hpp
+++ b/src/route/name-prefix-table.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2021,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -141,8 +141,8 @@
   const ndn::Name& m_ownRouterName;
   Fib& m_fib;
   RoutingTable& m_routingTable;
-  ndn::util::signal::Connection m_afterRoutingChangeConnection;
-  ndn::util::signal::Connection m_afterLsdbModified;
+  ndn::signal::Connection m_afterRoutingChangeConnection;
+  ndn::signal::Connection m_afterLsdbModified;
 };
 
 inline NamePrefixTable::const_iterator
diff --git a/src/route/routing-table.hpp b/src/route/routing-table.hpp
index f7e0525..c49eaec 100644
--- a/src/route/routing-table.hpp
+++ b/src/route/routing-table.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2021,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California
  *
  * This file is part of NLSR (Named-data Link State Routing).
@@ -155,7 +155,7 @@
   bool m_isRouteCalculationScheduled;
 
   ConfParameter& m_confParam;
-  ndn::util::signal::Connection m_afterLsdbModified;
+  ndn::signal::Connection m_afterLsdbModified;
   int32_t m_hyperbolicState;
   bool m_ownAdjLsaExist = false;
 };
diff --git a/src/security/certificate-store.hpp b/src/security/certificate-store.hpp
index 2a47caa..0c01bf0 100644
--- a/src/security/certificate-store.hpp
+++ b/src/security/certificate-store.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -104,7 +104,7 @@
   ndn::Face& m_face;
   ConfParameter& m_confParam;
   ndn::security::ValidatorConfig& m_validator;
-  ndn::util::signal::ScopedConnection m_afterSegmentValidatedConnection;
+  ndn::signal::ScopedConnection m_afterSegmentValidatedConnection;
 };
 
 } // namespace security
diff --git a/src/signals.hpp b/src/signals.hpp
index b7b2b33..7cccac7 100644
--- a/src/signals.hpp
+++ b/src/signals.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  The University of Memphis,
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -32,8 +32,8 @@
 class RoutingTableEntry;
 class SyncLogicHandler;
 
-using AfterRoutingChange = ndn::util::Signal<RoutingTable, std::list<RoutingTableEntry>>;
-using OnNewLsa = ndn::util::Signal<SyncLogicHandler, ndn::Name, uint64_t, ndn::Name, uint64_t>;
+using AfterRoutingChange = ndn::signal::Signal<RoutingTable, std::list<RoutingTableEntry>>;
+using OnNewLsa = ndn::signal::Signal<SyncLogicHandler, ndn::Name, uint64_t, ndn::Name, uint64_t>;
 
 } // namespace nlsr
 
diff --git a/src/stats-collector.hpp b/src/stats-collector.hpp
index a2be959..802769d 100644
--- a/src/stats-collector.hpp
+++ b/src/stats-collector.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017,  The University of Memphis,
+/*
+ * Copyright (c) 2014-2023,  The University of Memphis,
  *                           Regents of the University of California
  *
  * This file is part of NLSR (Named-data Link State Routing).
@@ -28,8 +28,9 @@
 
 namespace nlsr {
 
-// brief: a class designed to handle statistical signals in nlsr
-
+/**
+ * \brief a class designed to handle statistical signals in nlsr
+ */
 class StatsCollector
 {
 public:
@@ -63,8 +64,8 @@
   HelloProtocol& m_hp;
   Statistics m_stats;
 
-  ndn::util::signal::ScopedConnection m_lsaIncrementConn;
-  ndn::util::signal::ScopedConnection m_helloIncrementConn;
+  ndn::signal::ScopedConnection m_lsaIncrementConn;
+  ndn::signal::ScopedConnection m_helloIncrementConn;
 };
 
 } // namespace nlsr
