diff --git a/sensors/src/CPUSensorMain.cpp b/sensors/src/CPUSensorMain.cpp
index 0edbc65..65fad1b 100644
--- a/sensors/src/CPUSensorMain.cpp
+++ b/sensors/src/CPUSensorMain.cpp
@@ -102,7 +102,6 @@
                                     dbusConnection, sensorConfigurations,
                                     useCache))
         {
-            std::cerr << "error communicating to entity manager\n";
             return false;
         }
         useCache = true;
@@ -232,6 +231,8 @@
         }
     }
 
+    std::cout << "Sensor creation completed\n";
+
     return true;
 }
 
@@ -305,6 +306,7 @@
                     break;
                 }
             }
+
             if (dimmReady)
             {
                 state = State::READY;
@@ -323,8 +325,14 @@
         {
             if (config.state == State::OFF)
             {
+                std::cout << config.ovName << " is detected\n";
                 reloadOverlay(config.ovName);
             }
+            if (state == State::READY)
+            {
+                std::cout << "DIMM(s) on " << config.ovName
+                          << " is/are detected\n";
+            }
             config.state = state;
         }
 
@@ -391,8 +399,6 @@
         if (!getSensorConfiguration(CONFIG_PREFIX + std::string(type),
                                     systemBus, sensorConfigurations, useCache))
         {
-            std::cerr
-                << "getCpuConfig: error communicating to entity manager\n";
             return;
         }
         useCache = true;
@@ -446,6 +452,8 @@
             }
         }
     }
+
+    std::cout << "CPU configs parsed\n";
 }
 
 int main(int argc, char** argv)
