diff --git a/writefrudata.cpp b/writefrudata.cpp
index 97282ea..6e1fbec 100644
--- a/writefrudata.cpp
+++ b/writefrudata.cpp
@@ -353,9 +353,9 @@
     for (auto& instance : instanceList)
     {
         InterfaceMap interfaces;
-        const auto& extrasIter = extras.find(instance.first);
+        const auto& extrasIter = extras.find(instance.path);
 
-        for (auto& interfaceList : instance.second)
+        for (auto& interfaceList : instance.interfaces)
         {
             PropertyMap props;//store all the properties
             for (auto& properties : interfaceList.second)
@@ -388,7 +388,7 @@
         }
 
         // Call the inventory manager
-        sdbusplus::message::object_path path = instance.first;
+        sdbusplus::message::object_path path = instance.path;
         // Check and update extra properties
         if(extras.end() != extrasIter)
         {
