diff --git a/control/zone.cpp b/control/zone.cpp
index 56c6cb6..4d31ecf 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -20,6 +20,7 @@
 #include <xyz/openbmc_project/Common/error.hpp>
 #include "zone.hpp"
 #include "utility.hpp"
+#include "sdbusplus.hpp"
 
 namespace phosphor
 {
@@ -68,7 +69,7 @@
         if (!_decTimer.running() && _decInterval != seconds::zero())
         {
             _decTimer.start(_decInterval,
-                            phosphor::fan::util::Timer::TimerType::repeating);
+                            util::Timer::TimerType::repeating);
         }
     }
 }
@@ -147,7 +148,7 @@
         setSpeed(requestTarget);
         // Start timer countdown for fan speed increase
         _incTimer.start(_incDelay,
-                        phosphor::fan::util::Timer::TimerType::oneshot);
+                        util::Timer::TimerType::oneshot);
     }
 }
 
@@ -205,8 +206,8 @@
         }
         catch (const InternalFailure& ife)
         {
-            log<level::ERR>(
-                "Unable to find property: ",
+            log<level::INFO>(
+                "Unable to find property",
                 entry("PATH=%s", group.first.c_str()),
                 entry("INTERFACE=%s", std::get<intfPos>(group.second).c_str()),
                 entry("PROPERTY=%s", std::get<propPos>(group.second).c_str()));
@@ -302,7 +303,7 @@
                        const std::string& prop,
                        PropertyVariantType& value)
 {
-    auto serv = phosphor::fan::util::getService(path, iface, bus);
+    auto serv = util::SDBusPlus::getService(bus, path, iface);
     auto hostCall = bus.new_method_call(serv.c_str(),
                                         path.c_str(),
                                         "org.freedesktop.DBus.Properties",
@@ -312,7 +313,7 @@
     auto hostResponseMsg = bus.call(hostCall);
     if (hostResponseMsg.is_method_error())
     {
-        log<level::ERR>("Error in host call response for retrieving property");
+        log<level::INFO>("Host call response error for retrieving property");
         elog<InternalFailure>();
     }
     hostResponseMsg.read(value);
