diff --git a/monitor/system.hpp b/monitor/system.hpp
index 328c958..3997807 100644
--- a/monitor/system.hpp
+++ b/monitor/system.hpp
@@ -113,11 +113,25 @@
     }
 
     /**
-     * @brief Parses and populates the fan monitor trust groups and list of fans
+     * @brief tests the presence of Inventory and calls load() if present, else
+     *  waits for Inventory asynchronously and has a callback to load() when
+     * present
      */
     void start();
 
+    /**
+     * @brief Parses and populates the fan monitor trust groups and list of fans
+     */
+    void load();
+
   private:
+    /**
+     * @brief Callback from D-Bus when Inventory service comes online
+     *
+     * @param[in] msg - Service details.
+     */
+    void inventoryOnlineCb(sdbusplus::message::message& msg);
+
     /* The mode of fan monitor */
     Mode _mode;
 
@@ -130,6 +144,9 @@
     /* Trust manager of trust groups */
     std::unique_ptr<phosphor::fan::trust::Manager> _trust;
 
+    /* match object to detect Inventory service */
+    std::unique_ptr<sdbusplus::bus::match::match> _inventoryMatch;
+
     /* List of fan objects to monitor */
     std::vector<std::unique_ptr<Fan>> _fans;
 
@@ -173,9 +190,9 @@
     std::vector<std::unique_ptr<sdbusplus::bus::match::match>> _sensorMatch;
 
     /**
-     * @brief If start() has been called
+     * @brief true if config files have been loaded
      */
-    bool _started = false;
+    bool _loaded = false;
 
     /**
      * @brief Captures tach sensor data as JSON for use in
