diff --git a/meson.build b/meson.build
index 66e6801..19dfc62 100644
--- a/meson.build
+++ b/meson.build
@@ -12,16 +12,9 @@
 
 build_tests = get_option('tests')
 
-gmock = dependency('gmock')
-gpioplus = dependency('gpioplus')
-gtest = dependency('gtest', main: true)
-phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
-phosphor_logging = dependency('phosphor-logging')
-sdbusplus = dependency('sdbusplus')
-sdeventplus = dependency('sdeventplus')
-stdplus = dependency('stdplus')
 fmt = dependency('fmt')
-threads = dependency('threads')
+gmock = dependency('gmock')
+gtest = dependency('gtest', main: true)
 
 conf = configuration_data()
 conf.set_quoted('BUSNAME_PREFIX', get_option('busname-prefix'))
@@ -29,82 +22,62 @@
 conf.set10('NEGATIVE_ERRNO_ON_FAIL', get_option('negative-errno-on-fail'))
 conf.set10('UPDATE_FUNCTIONAL_ON_FAIL', get_option('update-functional-on-fail'))
 
-configure_file(output: 'config.h', configuration: conf)
+sysfs_headers = include_directories('.')
 
-libaverage = static_library(
-    'average',
-    'average.cpp',
-)
+sysfs_deps = [
+    fmt,
+]
 
-libfan_pwm = static_library(
-    'fan_pwm',
-    'fan_pwm.cpp',
-)
-
-libhwmon = static_library(
-    'hwmon',
-    'hwmon.cpp',
-)
-
-libhwmonio = static_library(
-    'hwmonio',
-    'hwmonio.cpp',
-)
-
-libsensor = static_library(
-    'sensor',
-    'sensor.cpp',
-    dependencies: [
-        phosphor_dbus_interfaces,
-        phosphor_logging,
-        sdbusplus,
-    ],
-    link_with: [
-        libhwmon,
-    ],
-)
-
-libsysfs = static_library(
+sysfs_lib = static_library(
     'sysfs',
     'sysfs.cpp',
-    dependencies: [
-        sdbusplus,
-    ],
-)
+    include_directories: sysfs_headers,
+    dependencies: sysfs_deps)
 
-libhwmon_all = static_library(
-    'hwmon_all',
+sysfs_dep = declare_dependency(
+    dependencies: sysfs_deps,
+    include_directories: sysfs_headers,
+    link_with: sysfs_lib)
+
+hwmon_headers = include_directories('.')
+
+hwmon_deps = [
+    fmt,
+    dependency('gpioplus'),
+    dependency('phosphor-dbus-interfaces'),
+    dependency('phosphor-logging'),
+    dependency('sdbusplus'),
+    dependency('sdeventplus'),
+    dependency('stdplus'),
+    sysfs_dep,
+]
+
+hwmon_lib = static_library(
+    'hwmon',
+    'average.cpp',
+    configure_file(output: 'config.h', configuration: conf),
     'env.cpp',
+    'fan_pwm.cpp',
     'fan_speed.cpp',
     'gpio_handle.cpp',
+    'hwmon.cpp',
+    'hwmonio.cpp',
     'mainloop.cpp',
+    'sensor.cpp',
     'sensorset.cpp',
-    dependencies: [
-        fmt,
-        gpioplus,
-        phosphor_dbus_interfaces,
-        phosphor_logging,
-    ],
-    link_with: [
-        libaverage,
-        libfan_pwm,
-        libhwmon,
-        libhwmonio,
-        libsensor,
-        libsysfs,
-    ],
-)
+    dependencies: hwmon_deps,
+    include_directories: hwmon_headers)
+
+hwmon_dep = declare_dependency(
+    dependencies: hwmon_deps,
+    include_directories: hwmon_headers,
+    link_with: hwmon_lib)
 
 executable(
     'phosphor-hwmon-readd',
     'readd.cpp',
-    dependencies: [
-        sdeventplus,
-    ],
+    dependencies: hwmon_dep,
     install: true,
-    link_with: [
-        libhwmon_all,
-    ],
 )
 
 subdir('msl')
diff --git a/sysfs.cpp b/sysfs.cpp
index 7fdadd0..f5b12bc 100644
--- a/sysfs.cpp
+++ b/sysfs.cpp
@@ -13,18 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "config.h"
-
 #include "sysfs.hpp"
 
+#include <fmt/format.h>
+
 #include <algorithm>
 #include <cerrno>
 #include <cstdlib>
 #include <filesystem>
 #include <fstream>
-#include <memory>
-#include <phosphor-logging/log.hpp>
-#include <thread>
+#include <string>
 
 using namespace std::string_literals;
 namespace fs = std::filesystem;
@@ -233,9 +231,9 @@
     }
     catch (const std::exception& e)
     {
-        using namespace phosphor::logging;
-        log<level::ERR>("Unable to find hwmon directory from the dev path",
-                        entry("PATH=%s", devPath.c_str()));
+        fmt::print(stderr,
+                   "Unable to find hwmon directory from the dev path: {}\n",
+                   devPath.c_str());
     }
     return emptyString;
 }
diff --git a/sysfs.hpp b/sysfs.hpp
index c1799f6..80fb3d6 100644
--- a/sysfs.hpp
+++ b/sysfs.hpp
@@ -1,8 +1,5 @@
 #pragma once
 
-#include <chrono>
-#include <exception>
-#include <fstream>
 #include <string>
 
 namespace sysfs
diff --git a/test/meson.build b/test/meson.build
index cbe1f5d..1cd4eef 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -4,10 +4,7 @@
     dependencies: [
         gmock,
         gtest,
-    ],
-    include_directories: '..',
-    link_with: [
-        libaverage,
+        hwmon_dep,
     ],
 )
 
@@ -17,8 +14,8 @@
     dependencies: [
         gmock,
         gtest,
+        hwmon_dep,
     ],
-    include_directories: '..',
 )
 
 fanpwm_unittest = executable(
@@ -27,12 +24,7 @@
     dependencies: [
         gmock,
         gtest,
-        phosphor_logging,
-        fmt,
-    ],
-    include_directories: '..',
-    link_with: [
-        libfan_pwm,
+        hwmon_dep,
     ],
 )
 
@@ -42,11 +34,7 @@
     dependencies: [
         gmock,
         gtest,
-        fmt,
-    ],
-    include_directories: '..',
-    link_with: [
-        libhwmon,
+        hwmon_dep,
     ],
 )
 
@@ -56,11 +44,7 @@
     dependencies: [
         gtest,
         gmock,
-        fmt,
-    ],
-    include_directories: '..',
-    link_with: [
-        libhwmonio,
+        hwmon_dep,
     ],
 )
 
@@ -71,10 +55,6 @@
     dependencies: [
         gtest,
         gmock,
-        fmt,
-    ],
-    include_directories: '..',
-    link_with: [
-        libsensor,
+        hwmon_dep,
     ],
 )
diff --git a/tools/meson.build b/tools/meson.build
index 4b8ea4e..8458b3e 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,13 +1,9 @@
 executable(
     'find_hwmon',
     'find_hwmon.cpp',
-    include_directories: '..',
-    link_with: libsysfs,
-)
+    dependencies: sysfs_dep)
 
 executable(
     'find_callout_path',
     'find_callout_path.cpp',
-    include_directories: '..',
-    link_with: libsysfs,
-)
+    dependencies: sysfs_dep)
