diff --git a/mainloop.cpp b/mainloop.cpp
index 4c74f53..5324fcd 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -27,6 +27,7 @@
 #include "fan_pwm.hpp"
 #include "fan_speed.hpp"
 #include "hwmon.hpp"
+#include "hwmonio.hpp"
 #include "sensorset.hpp"
 #include "sysfs.hpp"
 #include "mainloop.hpp"
@@ -132,7 +133,7 @@
 
 auto addValue(const SensorSet::key_type& sensor,
               const RetryIO& retryIO,
-              sysfs::hwmonio::HwmonIO& ioAccess,
+              hwmonio::HwmonIO& ioAccess,
               ObjectInfo& info,
               bool isOCC = false)
 {
@@ -278,7 +279,7 @@
     objectPath.append(std::get<sensorLabel>(properties));
 
     ObjectInfo info(&_bus, std::move(objectPath), Object());
-    RetryIO retryIO(sysfs::hwmonio::retries, sysfs::hwmonio::delay);
+    RetryIO retryIO(hwmonio::retries, hwmonio::delay);
     if (rmSensors.find(sensor.first) != rmSensors.end())
     {
         // When adding a sensor that was purposely removed,
@@ -507,8 +508,8 @@
                         i.first.first,
                         i.first.second,
                         input,
-                        sysfs::hwmonio::retries,
-                        sysfs::hwmonio::delay,
+                        hwmonio::retries,
+                        hwmonio::delay,
                         _isOCC);
 
                 value = adjustValue(i.first, value);
