diff --git a/src/handles/read-handle.hpp b/src/handles/read-handle.hpp
index 753e3d4..780a9c6 100644
--- a/src/handles/read-handle.hpp
+++ b/src/handles/read-handle.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2019, Regents of the University of California.
+ * Copyright (c) 2014-2023, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -81,8 +81,8 @@
 private:
   size_t m_prefixSubsetLength;
   std::map<ndn::Name, RegisteredDataPrefix> m_insertedDataPrefixes;
-  ndn::util::signal::ScopedConnection afterDataDeletionConnection;
-  ndn::util::signal::ScopedConnection afterDataInsertionConnection;
+  ndn::signal::ScopedConnection afterDataDeletionConnection;
+  ndn::signal::ScopedConnection afterDataInsertionConnection;
   Face& m_face;
   RepoStorage& m_storageHandle;
 };
diff --git a/src/handles/write-handle.cpp b/src/handles/write-handle.cpp
index 1e30b5e..b9c51f0 100644
--- a/src/handles/write-handle.cpp
+++ b/src/handles/write-handle.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022, Regents of the University of California.
+ * Copyright (c) 2014-2023, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -148,10 +148,10 @@
   fetchName.appendSegment(startBlockId);
   Interest interest(fetchName);
 
-  ndn::util::SegmentFetcher::Options options;
+  ndn::SegmentFetcher::Options options;
   options.initCwnd = initialCredit;
   options.interestLifetime = m_interestLifetime;
-  auto fetcher = ndn::util::SegmentFetcher::start(face, interest, m_validator, options);
+  auto fetcher = ndn::SegmentFetcher::start(face, interest, m_validator, options);
   fetcher->onError.connect([] (uint32_t, const auto& errorMsg) {
     NDN_LOG_ERROR("Error: " << errorMsg);
   });
@@ -164,7 +164,7 @@
 }
 
 void
-WriteHandle::onSegmentData(ndn::util::SegmentFetcher& fetcher, const Data& data, ProcessId processId)
+WriteHandle::onSegmentData(ndn::SegmentFetcher& fetcher, const Data& data, ProcessId processId)
 {
   auto it = m_processes.find(processId);
   if (it == m_processes.end()) {
@@ -210,7 +210,7 @@
 }
 
 void
-WriteHandle::onSegmentTimeout(ndn::util::SegmentFetcher& fetcher, ProcessId processId)
+WriteHandle::onSegmentTimeout(ndn::SegmentFetcher& fetcher, ProcessId processId)
 {
   NDN_LOG_DEBUG("SegTimeout");
   if (m_processes.count(processId) == 0) {
diff --git a/src/handles/write-handle.hpp b/src/handles/write-handle.hpp
index 04ed3f5..50cd335 100644
--- a/src/handles/write-handle.hpp
+++ b/src/handles/write-handle.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022, Regents of the University of California.
+ * Copyright (c) 2014-2023, Regents of the University of California.
  *
  * This file is part of NDN repo-ng (Next generation of NDN repository).
  * See AUTHORS.md for complete list of repo-ng authors and contributors.
@@ -124,13 +124,13 @@
    * @brief fetch segmented data
    */
   void
-  onSegmentData(ndn::util::SegmentFetcher& fetcher, const Data& data, ProcessId processId);
+  onSegmentData(ndn::SegmentFetcher& fetcher, const Data& data, ProcessId processId);
 
   /**
    * @brief handle when fetching segmented data timeout
    */
   void
-  onSegmentTimeout(ndn::util::SegmentFetcher& fetcher, ProcessId processId);
+  onSegmentTimeout(ndn::SegmentFetcher& fetcher, ProcessId processId);
 
   /**
    * @brief initiate fetching segmented data
