diff --git a/src/hei_isolation_data.hpp b/src/hei_isolation_data.hpp
index 0117ce5..ee1432d 100644
--- a/src/hei_isolation_data.hpp
+++ b/src/hei_isolation_data.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <hei_includes.hpp>
+#include <isolator/hei_signature.hpp>
 
 namespace libhei
 {
@@ -13,7 +14,7 @@
  */
 class IsolationData
 {
-  public:
+  public: // Constructors, destructor, assignment, etc.
 
     /** @brief Default constructor. */
     IsolationData() = default;
@@ -27,12 +28,35 @@
     /** @brief Assignment operator. */
     IsolationData & operator=( const IsolationData & ) = default;
 
-    /** @brief Flushes the data to ensure a clean slate for next isolation. */
-    void clear() {}
+  private: // Instance variables
 
-  private:
+    /** A list of all signatures found during isolation. */
+    std::vector<Signature> iv_sigLists;
 
-    // TODO: add error signature list and register dump.
+    // TODO: add register dump.
+
+  public: // Member functions
+
+    /**
+     * @brief Adds a signature to the signature list.
+     * @param i_signature The target signature.
+     */
+    void addSignature( const Signature & i_signature )
+    {
+        iv_sigLists.push_back( i_signature );
+    }
+
+    /** @brief Allows access to the signature list. */
+    const std::vector<Signature> & getSignatureList()
+    {
+        return iv_sigLists;
+    }
+
+    /** @brief Flushes the data to ensure a clean slate for isolation. */
+    void flush()
+    {
+        iv_sigLists.clear();
+    }
 
 }; // end class IsolationData
 
