diff --git a/analyzer/analyzer_main.cpp b/analyzer/analyzer_main.cpp
index f697b4b..13da175 100644
--- a/analyzer/analyzer_main.cpp
+++ b/analyzer/analyzer_main.cpp
@@ -3,10 +3,23 @@
 namespace analyzer
 {
 
-/** @brief Analyze and isolate hardware errors */
+/** Analyze error condition using the hardware error isolator */
 void analyzeHardware()
 {
-    return;
+    using namespace libhei;
+
+    std::vector<Chip> chipList; // data to isolator
+    IsolationData isoData{};    // data from isolator
+
+    // TEMP CODE - start
+    initialize(nullptr, 0);
+
+    chipList.emplace_back(Chip{"proc", static_cast<ChipType_t>(0xdeadbeef)});
+
+    isolate(chipList, isoData);
+
+    uninitialize();
+    // TEMP CODE - end
 }
 
 } // namespace analyzer
diff --git a/analyzer/hei_user_defines.hpp b/analyzer/hei_user_defines.hpp
deleted file mode 100644
index e45e18d..0000000
--- a/analyzer/hei_user_defines.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-/**
- * @file hei_user_defines.hpp
- * @brief The purpose of this file is to provide defines that are required by
- *        the hardware error isolator library (libhei)
- */
-
-#include <assert.h>
-#include <inttypes.h>
-#include <stdio.h>
-
-#define HEI_INF(...)                                                           \
-    {                                                                          \
-        printf("HWDIAGS I> " __VA_ARGS__);                                     \
-        printf("\n");                                                          \
-    }
-
-#define HEI_ERR(...)                                                           \
-    {                                                                          \
-        printf("HWDIAGS E> " __VA_ARGS__);                                     \
-        printf("\n");                                                          \
-    }
-
-#define HEI_ASSERT(expression) assert(expression);
diff --git a/analyzer/user_interface.cpp b/analyzer/hei_user_interface.cpp
similarity index 75%
rename from analyzer/user_interface.cpp
rename to analyzer/hei_user_interface.cpp
index 29c0f93..0742d55 100644
--- a/analyzer/user_interface.cpp
+++ b/analyzer/hei_user_interface.cpp
@@ -1,8 +1,9 @@
 /**
- * @file These are implementations of the user interfaces declared in
- *       hei_user_interface.hpp
+ * @file These are the implementations of the user interfaces declared
+ *       in hei_user_interface.hpp
  */
 
+#include <assert.h>
 #include <stdarg.h>
 #include <stdio.h>
 
@@ -18,8 +19,11 @@
 {
     bool accessFailure = false;
 
-    //    HEI_INF("registerRead(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-    //             o_buffer, io_bufSize, i_regType, i_address);
+    assert(nullptr != o_buffer);
+    assert(0 != io_bufSize);
+
+    // TODO need real register read code
+    printf("registerRead not implemented\n");
 
     return accessFailure;
 }
@@ -33,8 +37,11 @@
 {
     bool accessFailure = false;
 
-    //    HEI_INF("registerWrite(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-    //             i_buffer, io_bufSize, i_regType, i_address);
+    assert(nullptr != i_buffer);
+    assert(0 != io_bufSize);
+
+    // TODO need real register write code
+    printf("registerWrite not implemented\n");
 
     return accessFailure;
 }
diff --git a/analyzer/meson.build b/analyzer/meson.build
index 8f19ecf..3113ce6 100644
--- a/analyzer/meson.build
+++ b/analyzer/meson.build
@@ -1,12 +1,9 @@
-# Get opennpower-libhei dependencies. If not available via package manager
-# "fallback" to using the local libhei subproject.
-libhei_dep = dependency('libhei', fallback : ['libhei', 'libhei_dep'])
-
 # gather analyzer sources to be used here and elsewhere if needed
-analyzer_src = files('analyzer_main.cpp', 'user_interface.cpp')
+analyzer_src = files('analyzer_main.cpp',
+                     'hei_user_interface.cpp')
 
 # Create hardware error analyzer library
 analyzer = static_library('analyzer',
                           analyzer_src,
                           dependencies : libhei_dep,
-                          install : true)
+                          install : false)
