diff --git a/src/hei_isolation_data.hpp b/src/hei_isolation_data.hpp
index 57344bd..66de234 100644
--- a/src/hei_isolation_data.hpp
+++ b/src/hei_isolation_data.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
-#include "hei_includes.hpp"
+#include <hei_includes.hpp>
+#include <chip_data/hei_chip_data.hpp>
 
 namespace libhei
 {
@@ -14,8 +15,17 @@
 {
   public:
 
-    /** @brief Default constructor. */
-    IsolationData() = default;
+    /**
+     * @brief Default constructor.
+     * @param i_chip     See iv_chip.
+     * @param i_chipType See iv_chipType.
+     */
+    IsolationData( void * i_chip, ChipType_t i_chipType ) :
+        iv_chip(i_chip), iv_chipType(i_chipType)
+    {}
+
+    /** @brief Destructor. */
+    ~IsolationData() = default;
 
     /** @brief Copy constructor. */
     IsolationData( const IsolationData & ) = default;
@@ -23,11 +33,35 @@
     /** @brief Assignment operator. */
     IsolationData & operator=( const IsolationData & ) = default;
 
-    /** @brief Destructor. */
-    ~IsolationData() = default;
+    /** @return The target chip pointer. */
+    void * getChip() const { return iv_chip; }
+
+    /** @return The target chip type. */
+    ChipType_t getChipType() const { return iv_chipType; }
+
+    /** @brief Flushes the data to ensure a clean slate for next isolation. */
+    void clear() {}
 
   private:
 
+    /**
+     * This is simply a pointer to a user application object that represents
+     * the target chip. The isolator does not know anything about this object
+     * nor how to use it. This parameter's only purpose is to eventually get
+     * passed back to the user application in a hardware access operation, which
+     * will be defined by the user application.
+     */
+    void * const iv_chip;
+
+    /**
+     * Each Chip Data File contains a unique chip type identifier. The user
+     * application will need to input this value so that the isolator will know
+     * which set of the isolation objects to reference.
+     */
+    const ChipType_t iv_chipType;
+
+    // TODO: add error signature list and register dump.
+
 }; // end class IsolationData
 
 } // end namespace libhei
