diff --git a/src/ietf-hardware/IETFHardware.cpp b/src/ietf-hardware/IETFHardware.cpp
index e138e51..b18a071 100644
--- a/src/ietf-hardware/IETFHardware.cpp
+++ b/src/ietf-hardware/IETFHardware.cpp
@@ -133,13 +133,11 @@
 {
     DataTree res(m_staticData);
 
-    auto attrs = m_hwmon->attributes();
-
     for (unsigned i = 1; i <= m_fanChannelsCount; i++) {
         const auto sensorComponentName = m_componentName + ":fan" + std::to_string(i) + ":rpm";
         const auto attribute = "fan"s + std::to_string(i) + "_input";
 
-        addSensorValue(res, sensorComponentName, std::to_string(attrs.at(attribute)));
+        addSensorValue(res, sensorComponentName, std::to_string(m_hwmon->attribute(attribute)));
     }
 
     return res;
diff --git a/tests/hardware_ietf-hardware.cpp b/tests/hardware_ietf-hardware.cpp
index 17ecf48..db75eea 100644
--- a/tests/hardware_ietf-hardware.cpp
+++ b/tests/hardware_ietf-hardware.cpp
@@ -46,13 +46,10 @@
     };
     FAKE_EMMC(emmc, attributesEMMC);
 
-    attributesHWMon = {
-        {"fan1_input"s, 253},
-        {"fan2_input"s, 0},
-        {"fan3_input"s, 1280},
-        {"fan4_input"s, 666},
-    };
-    FAKE_HWMON(fans, attributesHWMon);
+    REQUIRE_CALL(*fans, attribute("fan1_input"s)).RETURN( 253);
+    REQUIRE_CALL(*fans, attribute("fan2_input"s)).RETURN( 0);
+    REQUIRE_CALL(*fans, attribute("fan3_input"s)).RETURN( 1280);
+    REQUIRE_CALL(*fans, attribute("fan4_input"s)).RETURN( 666);
 
     REQUIRE_CALL(*sysfsTempFront, attribute("temp1_input")).RETURN(30800);
     REQUIRE_CALL(*sysfsTempCpu, attribute("temp1_input")).RETURN(41800);
