diff --git a/functor.cpp b/functor.cpp
index 90d713a..b8771d7 100644
--- a/functor.cpp
+++ b/functor.cpp
@@ -13,8 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include "config.h"
+
 #include "functor.hpp"
 
+#include "manager.hpp"
+
 #include <sdbusplus/bus.hpp>
 
 namespace phosphor
@@ -34,7 +38,8 @@
 }
 
 bool PropertyConditionBase::operator()(const std::string& path,
-                                       sdbusplus::bus::bus& bus, Manager&) const
+                                       sdbusplus::bus::bus& bus,
+                                       Manager& mgr) const
 {
     std::string host;
 
@@ -66,13 +71,25 @@
         }
 
         host = mapperResponse.begin()->first;
+    }
 
-        if (host == bus.get_unique_name())
+    // When the host service name is inventory manager, eval using
+    // a given `getProperty` function to retrieve a property value from
+    // an interface hosted by inventory manager.
+    if (host == BUSNAME)
+    {
+        try
         {
-            // TODO I can't call myself here.
+            return eval(mgr);
+        }
+        catch (const std::exception& e)
+        {
+            // Unable to find property on inventory manager,
+            // default condition to false.
             return false;
         }
     }
+
     auto hostCall = bus.new_method_call(
         host.c_str(), path.c_str(), "org.freedesktop.DBus.Properties", "Get");
     hostCall.append(_iface);
