diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py
index e647a0f259ad33ac249d97ed848d211cac1fbe08..b05cc4c68aebe98b7b9e2b9b17daabb70e024fbc 100644
--- a/binarycpython/utils/grid.py
+++ b/binarycpython/utils/grid.py
@@ -2211,5 +2211,35 @@ class Population:
     #     Function to join the result dictionaries
     #     """
 
+    def _check_binary_c_error(self, binary_c_output, argstring):
+        """
+        Function to check whether binary_c throws an error and handle accordingly. 
+    
+        TODO: build mechanism to stop the run if too many failing systems found
+        """
+
+        # print(binary_c_output)
+        # print(argstring)
+
+        if binary_c_output.startswith("SYSTEM_ERROR"):
+            # print('error found')
+
+            # Write arglines to file
+            with open(os.path.join(self.grid_options['tmp_dir'], 'failed_systems.txt'), 'a+') as f:
+                f.write(argstring)
+
+            try:
+                error_code = int(binary_c_output.splitlines()[0].split("with error code")[-1].split(":")[0].strip())
+
+                print(int(error_code))
+                # print(binary_c_output.splitlines()[0].split("with error code")[-1].split(":")[0])
+                if not error_code in self.grid_options['failing_systems_error_codes']:
+                    self.grid_options['failing_systems_error_codes'].apppend(error_code)
+            except ValueError:
+                print("failed to extract the error-code")
+
+            self.grid_options['failed_count'] += 1
+            self.grid_options['']
+
 
 ################################################################################################
diff --git a/binarycpython/utils/grid_options_defaults.py b/binarycpython/utils/grid_options_defaults.py
index 659245e1d9cd8931d4767d5e261c9c06ed6fa463..8c6b81d2121daea0a786829c09d72896dc29308e 100644
--- a/binarycpython/utils/grid_options_defaults.py
+++ b/binarycpython/utils/grid_options_defaults.py
@@ -83,6 +83,7 @@ grid_options_defaults_dict = {
     "error": 0,  # error?
     "failed_count": 0,  # amt of failed systems
     "failed_prob": 0,  # Summed probability of failed systems
+    "failed_systems_error_codes": [],
     "id": 0,  # Random id of this grid/population run,
     "modulo": 1,  # run modulo n of the grid.
     ## Grid type evolution