diff --git a/configurations/events/event_state_sensor.json b/configurations/events/event_state_sensor.json
deleted file mode 100755
index aecb474..0000000
--- a/configurations/events/event_state_sensor.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "entries": [
-        {
-            "containerID": 0,
-            "entityType": 67,
-            "entityInstance": 1,
-            "sensorOffset": 0,
-            "event_states": [
-                3,
-                4
-            ],
-            "dbus": {
-                "object_path": "/org/open_power/control/occ0",
-                "interface": "org.open_power.OCC.Status",
-                "property_name": "OccActive",
-                "property_type": "bool",
-                "property_values": [
-                    false,
-                    true
-                ]
-            }
-        },
-        {
-            "containerID": 0,
-            "entityType": 67,
-            "entityInstance": 2,
-            "sensorOffset": 0,
-            "event_states": [
-                3,
-                4
-            ],
-            "dbus": {
-                "object_path": "/org/open_power/control/occ1",
-                "interface": "org.open_power.OCC.Status",
-                "property_name": "OccActive",
-                "property_type": "bool",
-                "property_values": [
-                    false,
-                    true
-                ]
-            }
-        }
-     ]
-}
\ No newline at end of file
diff --git a/configurations/meson.build b/configurations/meson.build
index 10ec58d..79550d8 100644
--- a/configurations/meson.build
+++ b/configurations/meson.build
@@ -9,15 +9,18 @@
 )
 
 install_subdir('fru', install_dir: packagedir)
-if get_option('oem-ibm').enabled()
-    install_subdir('../oem/ibm/configurations/fru', install_dir: packagedir)
-    install_data('../oem/ibm/configurations/fileTable.json',
-        install_dir: packagedir)
-    install_data('../oem/ibm/configurations/host_eid', install_dir: packagedir)
-endif
 
 install_subdir('pdr', install_dir: packagedir)
 
 install_subdir('host', install_dir: packagedir)
 
 install_subdir('events', install_dir: packagedir)
+
+if get_option('oem-ibm').enabled()
+    install_subdir('../oem/ibm/configurations/fru', install_dir: packagedir)
+    install_subdir('../oem/ibm/configurations/events', install_dir: packagedir)
+    install_data('../oem/ibm/configurations/fileTable.json',
+        install_dir: packagedir)
+    install_data('../oem/ibm/configurations/host_eid', install_dir: packagedir)
+endif
+
diff --git a/libpldmresponder/event_parser.cpp b/libpldmresponder/event_parser.cpp
index 894c0aa..e38102c 100644
--- a/libpldmresponder/event_parser.cpp
+++ b/libpldmresponder/event_parser.cpp
@@ -18,8 +18,6 @@
 const std::vector<Json> emptyJsonList{};
 const std::vector<std::string> emptyStringVec{};
 
-constexpr auto eventStateSensorJson = "event_state_sensor.json";
-
 const std::set<std::string_view> supportedDbusPropertyTypes = {
     "bool",     "uint8_t", "int16_t",  "uint16_t", "int32_t",
     "uint32_t", "int64_t", "uint64_t", "double",   "string"};
@@ -34,74 +32,69 @@
         return;
     }
 
-    fs::path filePath = dir / eventStateSensorJson;
-    if (!fs::exists(filePath))
+    for (auto& file : fs::directory_iterator(dirPath))
     {
-        std::cerr << "Event state sensor JSON does not exist, PATH=" << filePath
-                  << "\n";
-        throw InternalFailure();
-    }
+        std::ifstream jsonFile(file.path());
 
-    std::ifstream jsonFile(filePath);
-
-    auto data = Json::parse(jsonFile, nullptr, false);
-    if (data.is_discarded())
-    {
-        std::cerr << "Parsing Event state sensor JSON file failed, FILE="
-                  << filePath;
-        throw InternalFailure();
-    }
-
-    auto entries = data.value("entries", emptyJsonList);
-    for (const auto& entry : entries)
-    {
-        StateSensorEntry stateSensorEntry{};
-        stateSensorEntry.containerId =
-            static_cast<uint16_t>(entry.value("containerID", 0));
-        stateSensorEntry.entityType =
-            static_cast<uint16_t>(entry.value("entityType", 0));
-        stateSensorEntry.entityInstance =
-            static_cast<uint16_t>(entry.value("entityInstance", 0));
-        stateSensorEntry.sensorOffset =
-            static_cast<uint8_t>(entry.value("sensorOffset", 0));
-
-        pldm::utils::DBusMapping dbusInfo{};
-
-        auto dbus = entry.value("dbus", emptyJson);
-        dbusInfo.objectPath = dbus.value("object_path", "");
-        dbusInfo.interface = dbus.value("interface", "");
-        dbusInfo.propertyName = dbus.value("property_name", "");
-        dbusInfo.propertyType = dbus.value("property_type", "");
-        if (dbusInfo.objectPath.empty() || dbusInfo.interface.empty() ||
-            dbusInfo.propertyName.empty() ||
-            (supportedDbusPropertyTypes.find(dbusInfo.propertyType) ==
-             supportedDbusPropertyTypes.end()))
+        auto data = Json::parse(jsonFile, nullptr, false);
+        if (data.is_discarded())
         {
-            std::cerr << "Invalid dbus config,"
-                      << " OBJPATH=" << dbusInfo.objectPath << " INTERFACE="
-                      << dbusInfo.interface << " PROPERTY_NAME="
-                      << dbusInfo.propertyName
-                      << " PROPERTY_TYPE=" << dbusInfo.propertyType << "\n";
+            std::cerr << "Parsing Event state sensor JSON file failed, FILE="
+                      << file.path();
             continue;
         }
 
-        auto eventStates = entry.value("event_states", emptyJsonList);
-        auto propertyValues = dbus.value("property_values", emptyJsonList);
-        if ((eventStates.size() == 0) || (propertyValues.size() == 0) ||
-            (eventStates.size() != propertyValues.size()))
+        auto entries = data.value("entries", emptyJsonList);
+        for (const auto& entry : entries)
         {
-            std::cerr << "Invalid event state JSON config,"
-                      << " EVENT_STATE_SIZE=" << eventStates.size()
-                      << " PROPERTY_VALUE_SIZE=" << propertyValues.size()
-                      << "\n";
-            continue;
-        }
+            StateSensorEntry stateSensorEntry{};
+            stateSensorEntry.containerId =
+                static_cast<uint16_t>(entry.value("containerID", 0));
+            stateSensorEntry.entityType =
+                static_cast<uint16_t>(entry.value("entityType", 0));
+            stateSensorEntry.entityInstance =
+                static_cast<uint16_t>(entry.value("entityInstance", 0));
+            stateSensorEntry.sensorOffset =
+                static_cast<uint8_t>(entry.value("sensorOffset", 0));
 
-        auto eventStateMap = mapStateToDBusVal(eventStates, propertyValues,
-                                               dbusInfo.propertyType);
-        eventMap.emplace(
-            stateSensorEntry,
-            std::make_tuple(std::move(dbusInfo), std::move(eventStateMap)));
+            pldm::utils::DBusMapping dbusInfo{};
+
+            auto dbus = entry.value("dbus", emptyJson);
+            dbusInfo.objectPath = dbus.value("object_path", "");
+            dbusInfo.interface = dbus.value("interface", "");
+            dbusInfo.propertyName = dbus.value("property_name", "");
+            dbusInfo.propertyType = dbus.value("property_type", "");
+            if (dbusInfo.objectPath.empty() || dbusInfo.interface.empty() ||
+                dbusInfo.propertyName.empty() ||
+                (supportedDbusPropertyTypes.find(dbusInfo.propertyType) ==
+                 supportedDbusPropertyTypes.end()))
+            {
+                std::cerr << "Invalid dbus config,"
+                          << " OBJPATH=" << dbusInfo.objectPath << " INTERFACE="
+                          << dbusInfo.interface << " PROPERTY_NAME="
+                          << dbusInfo.propertyName
+                          << " PROPERTY_TYPE=" << dbusInfo.propertyType << "\n";
+                continue;
+            }
+
+            auto eventStates = entry.value("event_states", emptyJsonList);
+            auto propertyValues = dbus.value("property_values", emptyJsonList);
+            if ((eventStates.size() == 0) || (propertyValues.size() == 0) ||
+                (eventStates.size() != propertyValues.size()))
+            {
+                std::cerr << "Invalid event state JSON config,"
+                          << " EVENT_STATE_SIZE=" << eventStates.size()
+                          << " PROPERTY_VALUE_SIZE=" << propertyValues.size()
+                          << "\n";
+                continue;
+            }
+
+            auto eventStateMap = mapStateToDBusVal(eventStates, propertyValues,
+                                                   dbusInfo.propertyType);
+            eventMap.emplace(
+                stateSensorEntry,
+                std::make_tuple(std::move(dbusInfo), std::move(eventStateMap)));
+        }
     }
 }
 
diff --git a/oem/ibm/configurations/events/oem_ibm_event_state_sensor.json b/oem/ibm/configurations/events/oem_ibm_event_state_sensor.json
new file mode 100644
index 0000000..1eb8c8a
--- /dev/null
+++ b/oem/ibm/configurations/events/oem_ibm_event_state_sensor.json
@@ -0,0 +1,44 @@
+{
+    "entries": [
+        {
+            "containerID": 0,
+            "entityType": 57346,
+            "entityInstance": 0,
+            "sensorOffset": 1,
+            "event_states": [
+                1,
+                2
+            ],
+            "dbus": {
+                "object_path": "/xyz/openbmc_project/network/hypervisor/eth0/ipv4/addr0",
+                "interface": "xyz.openbmc_project.Object.Enable",
+                "property_name": "Enabled",
+                "property_type": "bool",
+                "property_values": [
+                    true,
+                    false
+                ]
+            }
+        },
+        {
+            "containerID": 0,
+            "entityType": 57346,
+            "entityInstance": 1,
+            "sensorOffset": 1,
+            "event_states": [
+                1,
+                2
+            ],
+            "dbus": {
+                "object_path": "/xyz/openbmc_project/network/hypervisor/eth1/ipv4/addr0",
+                "interface": "xyz.openbmc_project.Object.Enable",
+                "property_name": "Enabled",
+                "property_type": "bool",
+                "property_values": [
+                    true,
+                    false
+                ]
+            }
+        }
+     ]
+}
\ No newline at end of file
diff --git a/test/event_jsons/malformed1/event_state.json b/test/event_jsons/malformed1/event_state.json
deleted file mode 100644
index 29f9b04..0000000
--- a/test/event_jsons/malformed1/event_state.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "entries": [
-        {
-            "containerID": 1,
-            "entityType": 64,
-            "entityInstance": 1,
-            "sensorOffset": 1,
-            "event_states": [
-                0,
-                1,
-                2
-            ],
-            "dbus": {
-                "object_path": "/xyz/abc/def",
-                "interface": "xyz.openbmc_project.example1.value",
-                "property_name": "value1",
-                "property_type": "string",
-                "property_values": [
-                    "xyz.openbmc_project.State.Normal",
-                    "xyz.openbmc_project.State.Critical",
-                    "xyz.openbmc_project.State.Fatal"
-                ]
-            }
-        }
-    ]
-}
diff --git a/test/event_jsons/malformed2/event_state_sensor.json b/test/event_jsons/malformed2/event_state_sensor.json
deleted file mode 100644
index f7de057..0000000
--- a/test/event_jsons/malformed2/event_state_sensor.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "entries": [
-        {
-            "containerID": 1,
-            "entityType": 64,
-            "entityInstance": 1,
-            "sensorOffset": 1,
-            "event_states": [
-                0,
-                1,
-                2
-            ],
-            "dbus": {
-                "object_path": "/xyz/abc/def",
-                "interface": "xyz.openbmc_project.example1.value",
-                "property_name": "value1",
-                "property_type": "string",
-                "property_values": [
-                    "xyz.openbmc_project.State.Normal",
-                    "xyz.openbmc_project.State.Critical"
-                    "xyz.openbmc_project.State.Fatal"
-                ]
-            }
-        }
-    ]
-}
diff --git a/test/libpldmresponder_platform_test.cpp b/test/libpldmresponder_platform_test.cpp
index 28dd1e0..1c561ea 100644
--- a/test/libpldmresponder_platform_test.cpp
+++ b/test/libpldmresponder_platform_test.cpp
@@ -459,11 +459,6 @@
 {
     using namespace pldm::responder::events;
 
-    ASSERT_THROW(StateSensorHandler("./event_jsons/malformed1"),
-                 std::exception);
-    ASSERT_THROW(StateSensorHandler("./event_jsons/malformed2"),
-                 std::exception);
-
     StateSensorHandler handler{"./event_jsons/good"};
     constexpr uint8_t eventState0 = 0;
     constexpr uint8_t eventState1 = 1;
