diff --git a/control/functor.hpp b/control/functor.hpp
index f631311..658c76a 100644
--- a/control/functor.hpp
+++ b/control/functor.hpp
@@ -87,7 +87,8 @@
     Properties& operator=(const Properties&) = default;
     Properties(Properties&&) = default;
     Properties& operator=(Properties&&) = default;
-    explicit Properties(U&& handler) : _handler(std::forward<U>(handler))
+    explicit Properties(U&& handler) :
+        _path(""), _intf(""), _prop(""), _handler(std::forward<U>(handler))
     {}
     Properties(const char* path, const char* intf, const char* prop,
                U&& handler) :
@@ -404,10 +405,11 @@
     void operator()(sdbusplus::bus::bus& bus, sdbusplus::message::message& msg,
                     Zone& zone) const
     {
-        std::string name;
-        bool hasOwner = false;
         if (msg)
         {
+            std::string name;
+            bool hasOwner = false;
+
             // Handle NameOwnerChanged signals
             msg.read(name);
 
diff --git a/control/zone.cpp b/control/zone.cpp
index 3c87654..9efb0c7 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -63,9 +63,9 @@
 {
     auto& fanDefs = std::get<fanListPos>(def);
 
-    for (auto& def : fanDefs)
+    for (auto& fanDef : fanDefs)
     {
-        _fans.emplace_back(std::make_unique<Fan>(bus, def));
+        _fans.emplace_back(std::make_unique<Fan>(bus, fanDef));
     }
 
     // Do not enable set speed events when in init mode
@@ -89,9 +89,9 @@
             _targetSpeed = _fans.front()->getTargetSpeed();
         }
         // Setup signal trigger for set speed events
-        for (auto& event : std::get<setSpeedEventsPos>(def))
+        for (auto& ssEvent : std::get<setSpeedEventsPos>(def))
         {
-            initEvent(event);
+            initEvent(ssEvent);
         }
         // Start timer for fan speed decreases
         _decTimer.restart(_decInterval);
@@ -523,7 +523,7 @@
     if (it != _persisted.end())
     {
         return std::any_of(it->second.begin(), it->second.end(),
-                           [&prop](auto& p) { return prop == p; });
+                           [&prop](const auto& p) { return prop == p; });
     }
 
     return persisted;
