diff --git a/mainloop.cpp b/mainloop.cpp
index dfda21f..df85f26 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -117,14 +117,15 @@
         int val = 0;
         read_sysfs(sysfsPath, val);
 
-        Object o;
         std::string objectPath{_root};
-
         objectPath.append("/");
         objectPath.append(i.first.first);
         objectPath.append("/");
         objectPath.append(label);
 
+        ObjectInfo info(&_bus, std::move(objectPath), Object());
+        auto& o = std::get<Object>(info);
+
         auto iface = std::make_shared<ValueObject>(_bus, objectPath.c_str());
         iface->value(val);
 
@@ -146,7 +147,7 @@
         auto value = std::make_tuple(
                          std::move(i.second),
                          std::move(label),
-                         std::move(o));
+                         std::move(info));
 
         state[std::move(i.first)] = std::move(value);
     }
@@ -177,7 +178,8 @@
                                            hwmon::entry::input),
                            value);
 
-                auto& obj = std::get<Object>(i.second);
+                auto& objInfo = std::get<ObjectInfo>(i.second);
+                auto& obj = std::get<Object>(objInfo);
                 auto iface = obj.find(InterfaceType::VALUE);
 
                 if (iface != obj.end())
