diff --git a/simrunner/simrunner.py b/simrunner/simrunner.py
index c29d04f15d98550881a0c722df7f7c8fbf246e66..3882878f9e06e59cf30926d4f7aa701fe8788501 100644
--- a/simrunner/simrunner.py
+++ b/simrunner/simrunner.py
@@ -81,47 +81,48 @@ def create_event_list():
     return e_list
 
 
-def run_sim(e_list, d_path, sim_path, st_path):
+def run_sim(e_list, d_path, sim_path, main_path):
+    stat_path = os.path.join(main_path, "statistics")
+    os.makedirs(stat_path, mode=0o777, exist_ok=True)
     for event in e_list:
         folder_name = event[-1]
         stat_file_name = "statistics_" + folder_name
         output_path = os.path.join(d_path, folder_name)
-        relativ_path_stat = os.path.join(st_path, stat_file_name + ".dat")
-        if not args.hosts:
+        if args.hosts:
+            # Remote execution on multiple machines with specified user
+            for host in args.hosts:
+                ssh_target = f'{args.user}@{host}'
+                remote_output = make_folders_remote(test_data_path, output_path, ssh_target, host)
+                event[-1] = remote_output
+                command = ["ssh", ssh_target, sim_path] + event
+                result = subprocess.run(command, capture_output=True, text=True)
+                output = result.stdout
+                errors = result.stderr
+                terminal_output(output, errors, result.returncode)
+                relativ_path_stat = os.path.join(stat_path, stat_file_name + f"_{host}.dat")
+                with open(relativ_path_stat, "w") as stat_file:
+                    stat_file.write(output)
+                print(f"{folder_name}_{host} done!")
+        # Local execution
+        else:
             make_folders_lokal(test_data_path, output_path)
             event[-1] = output_path
-        arguments = event
-        output, errors, return_code = start_process(sim_path, arguments, test_data_path, output_path)
-        print(output)
-        with open(relativ_path_stat, "w") as stat_file:
-            stat_file.write(output)
-        print(errors)
-        if return_code > 0:
-            print("return code: ", return_code)
-        print(folder_name + " done!")
-
-
-def start_process(program_path, arguments, test_path, output_path):
-    if args.hosts:
-        # Remote execution on multiple machines with specified user
-        output = ""
-        errors = ""
-        result = ""
-        for host in args.hosts:
-            ssh_target = f'{args.user}@{host}'
-            remote_output = make_folders_remote(test_path, output_path, ssh_target, host)
-            arguments[-1] = remote_output
-            command = ["ssh", ssh_target, program_path] + arguments
+            command = [sim_path] + event
             result = subprocess.run(command, capture_output=True, text=True)
             output = result.stdout
             errors = result.stderr
-        return output, errors, result.returncode
-    else:
-        command = [program_path] + arguments
-        result = subprocess.run(command, capture_output=True, text=True)
-        output = result.stdout
-        errors = result.stderr
-        return output, errors, result.returncode
+            terminal_output(output, errors, result.returncode)
+            relativ_path_stat = os.path.join(stat_path, stat_file_name + ".dat")
+            with open(relativ_path_stat, "w") as stat_file:
+                stat_file.write(output)
+            print(f"{folder_name} done!")
+
+
+def terminal_output(output, errors, return_code):
+    print(output)
+    print(errors)
+    if return_code > 0:
+        print("return code: ", return_code)
 
 
 def make_folders_lokal(test_path, output_path):
@@ -138,11 +139,12 @@ def make_folders_remote(test_path, output_path, ssh_target, host):
     return host_output
 
 
-def pull_data(remote_path, lokal_path):
-    for host in args.hosts:
-        ssh_target = f'{args.user}@{host}'
-        scp_cmd = f'scp -r {ssh_target}:{remote_path} {lokal_path}'
-        subprocess.run(scp_cmd, shell=True, check=True)
+def pull_data(source_path, desti_path):
+    if args.hosts:
+        for host in args.hosts:
+            ssh_target = f'{args.user}@{host}'
+            scp_cmd = f'scp -r {ssh_target}:{source_path} {desti_path}'
+            subprocess.run(scp_cmd, shell=True, check=True)
 
 
 # --- MAIN ---
@@ -151,19 +153,17 @@ def pull_data(remote_path, lokal_path):
 args = parse_arguments()
 
 # Setup all paths and folders
-main_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+main_folder_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 simulation_path = args.sim
 data_path = os.path.join(args.data, "output")
 test_data_path = os.path.join(args.data, "test_data")
-stat_path = os.path.join(main_folder, "statistics")
-os.makedirs(stat_path, mode=0o777, exist_ok=True)
 
 
 # Setup arguments for Sim
 event_list = create_event_list()
 
 # Run detectorSimulation
-run_sim(event_list, data_path, simulation_path, stat_path)
+run_sim(event_list, data_path, simulation_path, main_folder_path)
 
 # Pull data for visualizer
-pull_data(data_path, main_folder)
+pull_data(data_path, main_folder_path)