diff --git a/src/handles/command-base-handle.hpp b/src/handles/command-base-handle.hpp
index 520b7d0..584c6b6 100644
--- a/src/handles/command-base-handle.hpp
+++ b/src/handles/command-base-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.
@@ -41,13 +41,6 @@
     using std::runtime_error::runtime_error;
   };
 
-public:
-  CommandBaseHandle(Face& face, RepoStorage& storageHandle,
-                    Scheduler& scheduler, ndn::security::Validator& validator);
-
-  virtual
-  ~CommandBaseHandle() = default;
-
   ndn::mgmt::Authorization
   makeAuthorization();
 
@@ -69,6 +62,12 @@
   }
 
 protected:
+  CommandBaseHandle(Face& face, RepoStorage& storageHandle,
+                    Scheduler& scheduler, ndn::security::Validator& validator);
+
+  ~CommandBaseHandle() = default;
+
+protected:
   Face& face;
   RepoStorage& storageHandle;
   Scheduler& scheduler;
diff --git a/src/handles/read-handle.hpp b/src/handles/read-handle.hpp
index 780a9c6..4e53f97 100644
--- a/src/handles/read-handle.hpp
+++ b/src/handles/read-handle.hpp
@@ -31,10 +31,10 @@
 
 class ReadHandle : public noncopyable
 {
-
 public:
   using DataPrefixRegistrationCallback = std::function<void(const ndn::Name&)>;
   using DataPrefixUnregistrationCallback = std::function<void(const ndn::Name&)>;
+
   struct RegisteredDataPrefix
   {
     ndn::RegisteredPrefixHandle hdl;
diff --git a/src/repo-command.hpp b/src/repo-command.hpp
index b985cbf..bcda13e 100644
--- a/src/repo-command.hpp
+++ b/src/repo-command.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.
@@ -29,7 +29,7 @@
 {
 public:
   /**
-   * \brief Represents an error in RepoCommandParameters
+   * \brief Represents an error in RepoCommandParameter.
    */
   class ArgumentError : public std::invalid_argument
   {
@@ -37,15 +37,13 @@
     using std::invalid_argument::invalid_argument;
   };
 
-  virtual
-  ~RepoCommand() = default;
-
   class FieldValidator
   {
   public:
     FieldValidator();
 
-    /** \brief declare a required field
+    /**
+     * \brief Declare a required field.
      */
     FieldValidator&
     required(RepoParameterField field)
@@ -54,7 +52,8 @@
       return *this;
     }
 
-    /** \brief declare an optional field
+    /**
+     * \brief Declare an optional field.
      */
     FieldValidator&
     optional(RepoParameterField field)
@@ -78,36 +77,39 @@
   void
   validateRequest(const RepoCommandParameter& parameters);
 
+protected:
+  ~RepoCommand() = default;
+
 private:
   virtual void
   check(const RepoCommandParameter& parameters) const
   {
   }
 
-public:
+protected:
   FieldValidator m_requestValidator;
 };
 
-class InsertCommand : public RepoCommand
+class InsertCommand final : public RepoCommand
 {
 public:
   InsertCommand();
 };
 
-class InsertCheckCommand : public RepoCommand
+class InsertCheckCommand final : public RepoCommand
 {
 public:
   InsertCheckCommand();
 };
 
-class DeleteCommand : public RepoCommand
+class DeleteCommand final : public RepoCommand
 {
 public:
   DeleteCommand();
 
 private:
   void
-  check(const RepoCommandParameter& parameters) const override;
+  check(const RepoCommandParameter& parameters) const final;
 };
 
 } // namespace repo
