diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp
index d59aa16..fb4f891 100644
--- a/fault-monitor/fru-fault-monitor.cpp
+++ b/fault-monitor/fru-fault-monitor.cpp
@@ -78,6 +78,7 @@
         elog<ObjectNotFoundErr>(ObjectNotFoundError::METHOD_NAME("GetObject"),
                                 ObjectNotFoundError::PATH(path.c_str()),
                                 ObjectNotFoundError::INTERFACE(OBJMGR_IFACE));
+        return {};
     }
 
     return mapperResponse.cbegin()->first;
diff --git a/fault-monitor/fru-fault-monitor.hpp b/fault-monitor/fru-fault-monitor.hpp
index 5658218..923a0f9 100644
--- a/fault-monitor/fru-fault-monitor.hpp
+++ b/fault-monitor/fru-fault-monitor.hpp
@@ -45,7 +45,7 @@
     /** @brief constructs Add a watch for FRU faults.
      *  @param[in] bus -  The Dbus bus object
      */
-    Add(sdbusplus::bus::bus& bus) :
+    explicit Add(sdbusplus::bus::bus& bus) :
         matchCreated(
             bus,
             sdbusplus::bus::match::rules::interfacesAdded() +
diff --git a/fault-monitor/operational-status-monitor.cpp b/fault-monitor/operational-status-monitor.cpp
index ffed55f..de6ee21 100644
--- a/fault-monitor/operational-status-monitor.cpp
+++ b/fault-monitor/operational-status-monitor.cpp
@@ -81,9 +81,7 @@
         return {};
     }
 
-    auto& endpoints = std::get<std::vector<std::string>>(endpoint);
-
-    return endpoints;
+    return std::get<std::vector<std::string>>(endpoint);
 }
 
 void Monitor::updateAssertedProperty(
diff --git a/fault-monitor/operational-status-monitor.hpp b/fault-monitor/operational-status-monitor.hpp
index ccf65a5..3fa995d 100644
--- a/fault-monitor/operational-status-monitor.hpp
+++ b/fault-monitor/operational-status-monitor.hpp
@@ -39,7 +39,7 @@
      *
      *  @param[in] bus -  D-Bus object
      */
-    Monitor(sdbusplus::bus::bus& bus) :
+    explicit Monitor(sdbusplus::bus::bus& bus) :
         bus(bus),
         matchSignal(bus,
                     "type='signal',member='PropertiesChanged', "
