diff --git a/include/error_monitors/err2_monitor.hpp b/include/error_monitors/err2_monitor.hpp
index f213e6c..ffa099e 100644
--- a/include/error_monitors/err2_monitor.hpp
+++ b/include/error_monitors/err2_monitor.hpp
@@ -14,7 +14,7 @@
 // limitations under the License.
 */
 #pragma once
-#include <error_monitors/err_pin_monitor.hpp>
+#include <error_monitors/err_pin_timeout_monitor.hpp>
 #include <host_error_monitor.hpp>
 #include <sdbusplus/asio/object_server.hpp>
 
@@ -24,13 +24,15 @@
 {
 static constexpr bool debug = false;
 
-class Err2Monitor : public host_error_monitor::err_pin_monitor::ErrPinMonitor
+class Err2Monitor :
+    public host_error_monitor::err_pin_timeout_monitor::ErrPinTimeoutMonitor
 {
     const static constexpr uint8_t beepCPUErr2 = 5;
 
     void assertHandler() override
     {
-        host_error_monitor::err_pin_monitor::ErrPinMonitor::assertHandler();
+        host_error_monitor::err_pin_timeout_monitor::ErrPinTimeoutMonitor::
+            assertHandler();
 
         beep(conn, beepCPUErr2);
 
@@ -59,8 +61,8 @@
     Err2Monitor(boost::asio::io_service& io,
                 std::shared_ptr<sdbusplus::asio::connection> conn,
                 const std::string& signalName) :
-        host_error_monitor::err_pin_monitor::ErrPinMonitor(io, conn, signalName,
-                                                           2)
+        host_error_monitor::err_pin_timeout_monitor::ErrPinTimeoutMonitor(
+            io, conn, signalName, 2)
     {}
 };
 } // namespace host_error_monitor::err2_monitor
diff --git a/include/error_monitors/err_pin_monitor.hpp b/include/error_monitors/err_pin_timeout_monitor.hpp
similarity index 88%
rename from include/error_monitors/err_pin_monitor.hpp
rename to include/error_monitors/err_pin_timeout_monitor.hpp
index dac74d9..772fefd 100644
--- a/include/error_monitors/err_pin_monitor.hpp
+++ b/include/error_monitors/err_pin_timeout_monitor.hpp
@@ -22,11 +22,11 @@
 
 #include <bitset>
 
-namespace host_error_monitor::err_pin_monitor
+namespace host_error_monitor::err_pin_timeout_monitor
 {
 static constexpr bool debug = false;
 
-class ErrPinMonitor :
+class ErrPinTimeoutMonitor :
     public host_error_monitor::base_gpio_poll_monitor::BaseGPIOPollMonitor
 {
     size_t errPin;
@@ -82,9 +82,9 @@
     }
 
   public:
-    ErrPinMonitor(boost::asio::io_service& io,
-                  std::shared_ptr<sdbusplus::asio::connection> conn,
-                  const std::string& signalName, const size_t errPin) :
+    ErrPinTimeoutMonitor(boost::asio::io_service& io,
+                         std::shared_ptr<sdbusplus::asio::connection> conn,
+                         const std::string& signalName, const size_t errPin) :
         BaseGPIOPollMonitor(io, conn, signalName, assertValue,
                             errPinPollingTimeMs, errPinTimeoutMs),
         errPin(errPin)
@@ -95,4 +95,4 @@
         }
     }
 };
-} // namespace host_error_monitor::err_pin_monitor
+} // namespace host_error_monitor::err_pin_timeout_monitor
