diff --git a/control/functor.hpp b/control/functor.hpp
index 06e8db9..8e85fcb 100644
--- a/control/functor.hpp
+++ b/control/functor.hpp
@@ -107,7 +107,9 @@
         {
             try
             {
+                auto service = zone.getService(_path, _iface);
                 auto val = util::SDBusPlus::getProperty<T>(bus,
+                                                           service,
                                                            _path,
                                                            _iface,
                                                            _property);
@@ -306,9 +308,7 @@
             try
             {
                 // Initialize NameOwnerChanged data store with service name
-                name = util::SDBusPlus::getService(bus,
-                                                   _path,
-                                                   _iface);
+                name = zone.getService(_path, _iface);
                 hasOwner = util::SDBusPlus::callMethodAndRead<bool>(
                         bus,
                         "org.freedesktop.DBus",
