diff --git a/llvm/projects/soc_simulator/src/driver.py b/llvm/projects/soc_simulator/src/driver.py
index 1df46eec8fc34cee7c6a7683d1faaae4a94639ca..9d39f1394f6faa55f3eb00bb78ddf13747e3738a 100644
--- a/llvm/projects/soc_simulator/src/driver.py
+++ b/llvm/projects/soc_simulator/src/driver.py
@@ -14,6 +14,13 @@ class Driver:
     results_time_key = "Time"
     results_energy_key = "Energy"
 
+    def __get_str(self, appr):
+        if appr == Driver.ApproxTypes.FP16:
+            return "FP16"
+        elif appr == Driver.ApproxTypes.FP32:
+            return "FP32"
+        elif appr == Driver.ApproxTypes.PROMISE:
+            return "PROMISE"
 
     def driver(self):
         self.__parse_tensor_layer_file()
@@ -143,6 +150,7 @@ class Driver:
 
 
     def __quantize(self, curr_layer, prev_layer, h2f_f2h_operation_ind, layer_data):
+        print(self.__get_str(curr_layer), self.__get_str(prev_layer), h2f_f2h_operation_ind)
         if curr_layer == prev_layer or curr_layer == Driver.ApproxTypes.PROMISE \
                     or prev_layer == Driver.ApproxTypes.PROMISE: # No quantization needed
             return 0.0, 0.0
@@ -187,7 +195,7 @@ class Driver:
             exit(1)
         # Run promise simulator
         # TODO need to print time and energy in the ptm runner so we can pipe it
-        output = subprocess.Popen(["./ptm", str(rows_a), str(cols_a), str(rows_b), \
+        output = subprocess.Popen(["./ptm_new", str(rows_a), str(cols_a), str(rows_b), \
                     str(cols_b), str(patch_factor), str(swing)], \
                     stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0]
         total_time_energy = output.strip().split(',')
@@ -210,7 +218,6 @@ class Driver:
 
 
     def __run_simulations(self):
-        print("run sim")
         if not os.path.isfile(self.__config_filename):
             print("ERROR: %s was not found" % self.__config_filename)
             exit(1)
@@ -228,14 +235,12 @@ class Driver:
             for layer_ind, config_layer in enumerate(config_layers): # level
                 layer_data = self.__tensor_layers[layer_ind]  # layer
                 layer_name = layer_data["Name"]
-
                 if Driver.is_promise(config_layer):
                     print("Running layer %s on PROMISE" % layer_name)
                     curr_layer = Driver.ApproxTypes.PROMISE
                     quant_time, quant_energy = self.__quantize(curr_layer, prev_layer, 0, layer_data)
                     # Compute 
                     time, energy = self.__run_promise_simulation(config_layer, layer_data)
-                    print(time, energy)
                     self.__aggregate_results[Driver.results_time_key][self.__config_count] += time
                     self.__aggregate_results[Driver.results_energy_key][self.__config_count] += energy 
                 else:
@@ -250,15 +255,16 @@ class Driver:
                             curr_layer = Driver.ApproxTypes.FP16
                         else:
                             curr_layer = Driver.ApproxTypes.FP32
+
                         quant_time, quant_energy = self.__quantize(curr_layer, prev_layer, tensor_ind, layer_data)
                         conv_time, conv_energy = self.__run_gpu_simulation(curr_layer, layer_name, tensor_ind)
                         total_time += quant_time + conv_time 
                         total_energy += quant_energy + conv_energy
+                        prev_layer = curr_layer
 
                     self.__aggregate_results[Driver.results_time_key][self.__config_count] += total_time
                     self.__aggregate_results[Driver.results_energy_key][self.__config_count] += total_energy 
 
-                prev_layer = curr_layer
             self.__config_count += 1
             print("\n")
         config_file.close()