diff --git a/czi/source_code/azgra_lib/include/azgra/azgra_string.h b/czi/source_code/azgra_lib/include/azgra/azgra_string.h
index 47c0885b3b33fa7a359bf57dd659fcb0e726761f..70237dc9b65264a12e5fbb4ebf36ad214e14c174 100644
--- a/czi/source_code/azgra_lib/include/azgra/azgra_string.h
+++ b/czi/source_code/azgra_lib/include/azgra/azgra_string.h
@@ -70,6 +70,7 @@ public:
    * @param cString Char array to create string from.
    */
   SimpleString(const char *cString);
+  ~SimpleString();
   
   /**
    * @brief Get the c string object
diff --git a/czi/source_code/azgra_lib/src/azgra_string.cpp b/czi/source_code/azgra_lib/src/azgra_string.cpp
index b07e37f21cef48dfd78500225a00af113be38e6d..02492ab607e716b3c7fe2d638916feda782c02d8 100644
--- a/czi/source_code/azgra_lib/src/azgra_string.cpp
+++ b/czi/source_code/azgra_lib/src/azgra_string.cpp
@@ -1,4 +1,4 @@
-#include "azgra_string.h"
+#include <azgra_string.h>
 
 namespace azgra
 {
@@ -10,7 +10,7 @@ char *SimpleString::alloc_string(const size_t &length)
     return memory;
 }
 
-char *SimpleString::realloc_string(const size_t &length, const char* oldString, const size_t oldLen)
+char *SimpleString::realloc_string(const size_t &length, const char *oldString, const size_t oldLen)
 {
     char *memory = alloc_string(length);
     for (size_t i = 0; i < oldLen; i++)
@@ -50,7 +50,7 @@ void SimpleString::internal_initalize(const char *string)
 }
 
 SimpleString::SimpleString(char *cString, const size_t length, bool noAlloc)
-{   
+{
     assert(noAlloc);
     _string = cString;
     _length = length;
@@ -98,6 +98,12 @@ SimpleString::SimpleString(const char *cString)
     internal_initalize(cString);
 }
 
+SimpleString::~SimpleString()
+{
+    free_string(_string);
+    _length = 0;
+}
+
 void SimpleString::internal_concat(const char *string, const size_t length)
 {
     size_t newLength = _length + length;
@@ -471,19 +477,19 @@ SimpleString SimpleString::substring(const size_t fromIndex, const size_t length
     return result;
 }
 
-SimpleString SimpleString::replicate(const char* cString, const int replicationCount)
+SimpleString SimpleString::replicate(const char *cString, const int replicationCount)
 {
     size_t replLen = c_string_length(cString);
     size_t resultLen = replLen * replicationCount;
-    char* resultMemory = alloc_string(resultLen);
+    char *resultMemory = alloc_string(resultLen);
 
     SimpleString result(resultMemory, resultLen, true);
 
-    for(int repl = 0; repl < replicationCount; repl++)
+    for (int repl = 0; repl < replicationCount; repl++)
     {
-        for(size_t charIndex = 0; charIndex < replLen; charIndex++)
+        for (size_t charIndex = 0; charIndex < replLen; charIndex++)
         {
-            result[(repl*replLen) + charIndex] = cString[charIndex];
+            result[(repl * replLen) + charIndex] = cString[charIndex];
         }
     }
     return result;