diff --git a/oem/ibm/libpldmresponder/file_io_type_cert.cpp b/oem/ibm/libpldmresponder/file_io_type_cert.cpp
index 3fe123e..03f577a 100644
--- a/oem/ibm/libpldmresponder/file_io_type_cert.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_cert.cpp
@@ -11,6 +11,8 @@
 
 namespace pldm
 {
+using namespace utils;
+
 namespace responder
 {
 
diff --git a/oem/ibm/libpldmresponder/file_io_type_lid.hpp b/oem/ibm/libpldmresponder/file_io_type_lid.hpp
index 841099c..0853d48 100644
--- a/oem/ibm/libpldmresponder/file_io_type_lid.hpp
+++ b/oem/ibm/libpldmresponder/file_io_type_lid.hpp
@@ -13,7 +13,6 @@
 namespace responder
 {
 
-using namespace pldm::responder::dma;
 namespace fs = std::filesystem;
 
 using MarkerLIDremainingSize = uint64_t;
diff --git a/oem/ibm/libpldmresponder/file_io_type_pel.hpp b/oem/ibm/libpldmresponder/file_io_type_pel.hpp
index d495185..043454d 100644
--- a/oem/ibm/libpldmresponder/file_io_type_pel.hpp
+++ b/oem/ibm/libpldmresponder/file_io_type_pel.hpp
@@ -7,8 +7,6 @@
 namespace responder
 {
 
-using namespace pldm::responder::dma;
-
 /** @class PelHandler
  *
  *  @brief Inherits and implements FileHandler. This class is used
diff --git a/oem/ibm/libpldmresponder/inband_code_update.cpp b/oem/ibm/libpldmresponder/inband_code_update.cpp
index 27ce945..fe7fde0 100644
--- a/oem/ibm/libpldmresponder/inband_code_update.cpp
+++ b/oem/ibm/libpldmresponder/inband_code_update.cpp
@@ -15,6 +15,8 @@
 #include <fstream>
 namespace pldm
 {
+using namespace utils;
+
 namespace responder
 {
 using namespace oem_ibm_platform;
diff --git a/oem/ibm/libpldmresponder/inband_code_update.hpp b/oem/ibm/libpldmresponder/inband_code_update.hpp
index 2bd02f4..7dbc735 100644
--- a/oem/ibm/libpldmresponder/inband_code_update.hpp
+++ b/oem/ibm/libpldmresponder/inband_code_update.hpp
@@ -6,7 +6,6 @@
 
 #include <string>
 
-using namespace pldm::utils;
 namespace pldm
 {
 namespace responder
@@ -200,8 +199,8 @@
      * @param[in] chProperties - list of properties which have changed
      * @return - none
      */
-    void
-        processPriorityChangeNotification(const DbusChangedProps& chProperties);
+    void processPriorityChangeNotification(
+        const pldm::utils::DbusChangedProps& chProperties);
 };
 
 /* @brief Method to fetch current or next boot side
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
index 9b64bd9..71393cb 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
@@ -6,6 +6,10 @@
 #include "file_io_type_lid.hpp"
 #include "libpldmresponder/file_io.hpp"
 #include "libpldmresponder/pdr_utils.hpp"
+
+using namespace pldm::pdr;
+using namespace pldm::utils;
+
 namespace pldm
 {
 namespace responder
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
index a713980..4a91dcc 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
@@ -52,7 +52,8 @@
   public:
     Handler(const pldm::utils::DBusHandler* dBusIntf,
             pldm::responder::CodeUpdate* codeUpdate, int mctp_fd,
-            uint8_t mctp_eid, Requester& requester, sdeventplus::Event& event,
+            uint8_t mctp_eid, pldm::dbus_api::Requester& requester,
+            sdeventplus::Event& event,
             pldm::requester::Handler<pldm::requester::Request>* handler) :
         oem_platform::Handler(dBusIntf),
         codeUpdate(codeUpdate), platformHandler(nullptr), mctp_fd(mctp_fd),
@@ -62,8 +63,9 @@
     }
 
     int getOemStateSensorReadingsHandler(
-        EntityType entityType, EntityInstance entityInstance,
-        StateSetId stateSetId, CompositeCount compSensorCnt,
+        EntityType entityType, pldm::pdr::EntityInstance entityInstance,
+        pldm::pdr::StateSetId stateSetId,
+        pldm::pdr::CompositeCount compSensorCnt,
         std::vector<get_sensor_state_field>& stateField);
 
     int oemSetStateEffecterStatesHandler(
@@ -159,7 +161,7 @@
     /** @brief reference to Requester object, primarily used to access API to
      *  obtain PLDM instance id.
      */
-    Requester& requester;
+    pldm::dbus_api::Requester& requester;
     /** @brief sdeventplus event source */
     std::unique_ptr<sdeventplus::source::Defer> assembleImageEvent;
     std::unique_ptr<sdeventplus::source::Defer> startUpdateEvent;
