diff --git a/analyzer/analyzer_main.cpp b/analyzer/analyzer_main.cpp
index 13da175..327dd1c 100644
--- a/analyzer/analyzer_main.cpp
+++ b/analyzer/analyzer_main.cpp
@@ -1,25 +1,43 @@
 #include <hei_main.hpp>
 
+#include <map>
+#include <string>
+
 namespace analyzer
 {
 
 /** Analyze error condition using the hardware error isolator */
-void analyzeHardware()
+int analyzeHardware(std::map<std::string, std::string>& i_errors)
 {
     using namespace libhei;
 
     std::vector<Chip> chipList; // data to isolator
     IsolationData isoData{};    // data from isolator
 
-    // TEMP CODE - start
+    // FIXME TEMP CODE - start
+
     initialize(nullptr, 0);
 
     chipList.emplace_back(Chip{"proc", static_cast<ChipType_t>(0xdeadbeef)});
 
-    isolate(chipList, isoData);
+    isolate(chipList, isoData); // isolate errors
+
+    if (!(isoData.getSignatureList().empty()))
+    {
+        // Signature signature = isoData.getSignatureList().back();
+    }
+    else
+    {
+        std::string signature = "0xfeed";
+        std::string chip      = "0xbeef";
+        i_errors[signature]   = chip;
+    }
 
     uninitialize();
-    // TEMP CODE - end
+
+    // FIXME TEMP CODE - end
+
+    return 0; // FIXME - error/success from isolator or isolation data
 }
 
 } // namespace analyzer
diff --git a/analyzer/analyzer_main.hpp b/analyzer/analyzer_main.hpp
index d7199b5..c7284ea 100644
--- a/analyzer/analyzer_main.hpp
+++ b/analyzer/analyzer_main.hpp
@@ -1,5 +1,8 @@
 #pragma once
 
+#include <map>
+#include <string>
+
 namespace analyzer
 {
 
@@ -9,6 +12,7 @@
  * If any error conditions are found on the host isolate the hardware
  * component that caused the error(s).
  */
-void analyzeHardware();
+
+int analyzeHardware(std::map<std::string, std::string>& i_errors);
 
 } // namespace analyzer
