diff --git a/src/hei_isolation_data.hpp b/src/hei_isolation_data.hpp
index b9a3b75..df07e05 100644
--- a/src/hei_isolation_data.hpp
+++ b/src/hei_isolation_data.hpp
@@ -1,7 +1,8 @@
 #pragma once
 
-#include <hei_includes.hpp>
-#include <isolator/hei_signature.hpp>
+#include <hei_signature.hpp>
+
+#include <vector>
 
 namespace libhei
 {
diff --git a/src/hei_main.hpp b/src/hei_main.hpp
index 919cd62..9c484fe 100644
--- a/src/hei_main.hpp
+++ b/src/hei_main.hpp
@@ -29,9 +29,10 @@
 
 #pragma once
 
-#include <hei_includes.hpp>
+#include <hei_chip.hpp>
 #include <hei_isolation_data.hpp>
-#include <isolator/hei_isolator.hpp>
+
+#include <vector>
 
 namespace libhei
 {
@@ -64,19 +65,13 @@
  *
  * @param i_bufferSize The size (in bytes) of the target Chip Data File.
  */
-inline void initialize(void* i_buffer, size_t i_bufferSize)
-{
-    Isolator::getSingleton().initialize(i_buffer, i_bufferSize);
-}
+void initialize(void* i_buffer, size_t i_bufferSize);
 
 /**
  * @brief Deletes all internal isolation objects that were created by
  *        initialize().
  */
-inline void uninitialize()
-{
-    Isolator::getSingleton().uninitialize();
-}
+void uninitialize();
 
 /**
  * @brief Isolates all active hardware errors found on the given list of chips.
@@ -94,10 +89,6 @@
  *                   associated with the active errors, and any other data that
  *                   can be useful for debug.
  */
-inline void isolate(const std::vector<Chip>& i_chipList,
-                    IsolationData& o_isoData)
-{
-    Isolator::getSingleton().isolate(i_chipList, o_isoData);
-}
+void isolate(const std::vector<Chip>& i_chipList, IsolationData& o_isoData);
 
 } // end namespace libhei
diff --git a/src/isolator/hei_signature.hpp b/src/hei_signature.hpp
similarity index 98%
rename from src/isolator/hei_signature.hpp
rename to src/hei_signature.hpp
index 2bf91e1..4f824db 100644
--- a/src/isolator/hei_signature.hpp
+++ b/src/hei_signature.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
-#include <hei_includes.hpp>
+#include <hei_chip.hpp>
+#include <hei_types.hpp>
 
 namespace libhei
 {
diff --git a/src/hei_user_interface.hpp b/src/hei_user_interface.hpp
index e8740f3..d880ef4 100644
--- a/src/hei_user_interface.hpp
+++ b/src/hei_user_interface.hpp
@@ -43,7 +43,9 @@
  *  }
  */
 
-#include <hei_includes.hpp>
+#include <stdlib.h>
+
+#include <hei_chip.hpp>
 
 namespace libhei
 {
diff --git a/src/isolator/hei_isolator.cpp b/src/isolator/hei_isolator.cpp
index 327da54..dc4d09b 100644
--- a/src/isolator/hei_isolator.cpp
+++ b/src/isolator/hei_isolator.cpp
@@ -1,4 +1,5 @@
 
+#include <hei_includes.hpp>
 #include <isolator/hei_isolation_node.hpp>
 #include <isolator/hei_isolator.hpp>
 #include <register/hei_hardware_register.hpp>
@@ -13,6 +14,27 @@
 namespace libhei
 {
 
+//------------------------------------------------------------------------------
+
+// Definitions for the interfaces defined in hei_main.hpp.
+
+void initialize(void* i_buffer, size_t i_bufferSize)
+{
+    Isolator::getSingleton().initialize(i_buffer, i_bufferSize);
+}
+
+void uninitialize()
+{
+    Isolator::getSingleton().uninitialize();
+}
+
+void isolate(const std::vector<Chip>& i_chipList, IsolationData& o_isoData)
+{
+    Isolator::getSingleton().isolate(i_chipList, o_isoData);
+}
+
+//------------------------------------------------------------------------------
+
 void Isolator::initialize(void* i_buffer, size_t i_bufferSize)
 {
     // TODO
