diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000..7ecd1b9
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,2 @@
+Checks: 'clang-analyzer-*'
+WarningsAsErrors: 'clang-analyzer-*'
diff --git a/src/config_parser.hpp b/src/config_parser.hpp
index 2d0bb1f..d082b18 100644
--- a/src/config_parser.hpp
+++ b/src/config_parser.hpp
@@ -3,7 +3,6 @@
 #include <filesystem>
 #include <functional>
 #include <optional>
-#include <ostream>
 #include <string>
 #include <string_view>
 #include <unordered_map>
@@ -52,6 +51,13 @@
         return t;
     }
 
+    template <typename T2, typename Check2>
+    constexpr bool operator==(const Checked<T2, Check2>& rhs) const noexcept
+    {
+        static_assert(std::is_same_v<Check2, Check>);
+        return t == rhs.t;
+    }
+
     constexpr bool operator==(const auto& rhs) const noexcept
     {
         return t == rhs;
@@ -69,19 +75,6 @@
     }
 };
 
-template <typename T, typename Check>
-constexpr bool operator==(const auto& lhs,
-                          const Checked<T, Check>& rhs) noexcept
-{
-    return lhs == rhs.get();
-}
-
-template <typename T, typename Check>
-inline std::ostream& operator<<(std::ostream& s, const Checked<T, Check>& rhs)
-{
-    return s << rhs.get();
-}
-
 struct KeyCheck
 {
     void operator()(std::string_view s);
diff --git a/src/ethernet_interface.hpp b/src/ethernet_interface.hpp
index 0b6e21a..0e9c536 100644
--- a/src/ethernet_interface.hpp
+++ b/src/ethernet_interface.hpp
@@ -187,7 +187,7 @@
 
     /** @brief delete all dbus objects.
      */
-    void deleteAll();
+    void deleteAll() override;
 
     /** @brief set the default v4 gateway of the interface.
      *  @param[in] gateway - default v4 gateway of the interface.
diff --git a/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.hpp b/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.hpp
index 26f03f7..464ed64 100644
--- a/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.hpp
+++ b/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.hpp
@@ -27,7 +27,7 @@
 class HypSysConfig : public Iface
 {
   public:
-    HypSysConfig() = default;
+    HypSysConfig() = delete;
     HypSysConfig(const HypSysConfig&) = delete;
     HypSysConfig& operator=(const HypSysConfig&) = delete;
     HypSysConfig(HypSysConfig&&) = delete;
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 26d3496..7db5f7f 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -20,14 +20,6 @@
 
 #include <filesystem>
 
-constexpr char SYSTEMD_BUSNAME[] = "org.freedesktop.systemd1";
-constexpr char SYSTEMD_PATH[] = "/org/freedesktop/systemd1";
-constexpr char SYSTEMD_INTERFACE[] = "org.freedesktop.systemd1.Manager";
-
-constexpr char NETWORKD_BUSNAME[] = "org.freedesktop.network1";
-constexpr char NETWORKD_PATH[] = "/org/freedesktop/network1";
-constexpr char NETWORKD_INTERFACE[] = "org.freedesktop.network1.Manager";
-
 namespace phosphor
 {
 namespace network
@@ -95,8 +87,9 @@
         try
         {
             bus.get()
-                .new_method_call(NETWORKD_BUSNAME, NETWORKD_PATH,
-                                 NETWORKD_INTERFACE, "Reload")
+                .new_method_call("org.freedesktop.network1",
+                                 "/org/freedesktop/network1",
+                                 "org.freedesktop.network1.Manager", "Reload")
                 .call();
             lg2::info("Reloaded systemd-networkd");
         }
