diff --git a/src/processing.cpp b/src/processing.cpp
index 3c7e7fb..4d2d3c1 100644
--- a/src/processing.cpp
+++ b/src/processing.cpp
@@ -42,8 +42,7 @@
 void processNameChangeDelete(
     boost::container::flat_map<std::string, std::string>& nameOwners,
     const std::string& wellKnown, const std::string& oldOwner,
-    interface_map_type& interfaceMap, AssociationOwnersType& assocOwners,
-    AssociationInterfaces& assocInterfaces,
+    interface_map_type& interfaceMap, AssociationMaps& assocMaps,
     sdbusplus::asio::object_server& server)
 {
     if (boost::starts_with(oldOwner, ":"))
@@ -69,8 +68,7 @@
                 [](const auto& iface) { return isAssocDefIface(iface); });
             if (assoc != ifaces->second.end())
             {
-                removeAssociation(pathIt->first, wellKnown, server, assocOwners,
-                                  assocInterfaces);
+                removeAssociation(pathIt->first, wellKnown, server, assocMaps);
             }
         }
         pathIt->second.erase(wellKnown);
@@ -89,8 +87,7 @@
                            const sdbusplus::message::object_path& objPath,
                            const InterfacesAdded& intfAdded,
                            const std::string& wellKnown,
-                           AssociationOwnersType& assocOwners,
-                           AssociationInterfaces& assocInterfaces,
+                           AssociationMaps& assocMaps,
                            sdbusplus::asio::object_server& server)
 {
     auto& ifaceList = interfaceMap[objPath.str];
@@ -120,7 +117,7 @@
                 sdbusplus::message::variant_ns::get<std::vector<Association>>(
                     *variantAssociations);
             associationChanged(server, associations, objPath.str, wellKnown,
-                               assocOwners, assocInterfaces);
+                               assocMaps);
         }
     }
 
