diff --git a/src/ethernet_interface.cpp b/src/ethernet_interface.cpp
index b04bc2d..a6b37ef 100644
--- a/src/ethernet_interface.cpp
+++ b/src/ethernet_interface.cpp
@@ -601,8 +601,8 @@
     try
     {
         auto reply = bus.get().call(method);
-        std::variant<ServerList> response;
-        reply.read(response);
+        auto response = reply.unpack<std::variant<ServerList>>();
+
         servers = std::get<ServerList>(response);
     }
     catch (const sdbusplus::exception::SdBusError& e)
diff --git a/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp b/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
index a3fe9c8..d3d7983 100644
--- a/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
+++ b/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
@@ -115,8 +115,7 @@
             }
         }();
 
-        ObjectTree objectTree;
-        mapperReply.read(objectTree);
+        auto objectTree = mapperReply.unpack<ObjectTree>();
 
         if (objectTree.empty())
         {
@@ -157,8 +156,8 @@
             }
         }
 
-        std::variant<BiosBaseTableType> response;
-        getDBusProp(objPath, biosMgrIntf, "BaseBIOSTable").read(response);
+        auto response = getDBusProp(objPath, biosMgrIntf, "BaseBIOSTable")
+                            .unpack<std::variant<BiosBaseTableType>>();
 
         const BiosBaseTableType* baseBiosTable =
             std::get_if<BiosBaseTableType>(&response);
diff --git a/src/inventory_mac.cpp b/src/inventory_mac.cpp
index 67e8dff..fb15e67 100644
--- a/src/inventory_mac.cpp
+++ b/src/inventory_mac.cpp
@@ -103,8 +103,7 @@
         }
     }();
 
-    ObjectTree objectTree;
-    mapperReply.read(objectTree);
+    auto objectTree = mapperReply.unpack<ObjectTree>();
 
     if (objectTree.empty())
     {
@@ -164,8 +163,8 @@
         }
     }();
 
-    std::variant<std::string> value;
-    reply.read(value);
+    auto value = reply.unpack<std::variant<std::string>>();
+
     return stdplus::fromStr<stdplus::EtherAddr>(std::get<std::string>(value));
 }
 
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 75c759b..5991611 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -154,8 +154,8 @@
                                       "org.freedesktop.DBus.Properties", "Get");
         req.append("org.freedesktop.network1.Link", "AdministrativeState");
         auto rsp = req.call();
-        std::variant<std::string> val;
-        rsp.read(val);
+        auto val = rsp.unpack<std::variant<std::string>>();
+
         handleAdminState(std::get<std::string>(val), ifidx);
     }
 
