diff --git a/execution/strategies/subexperiment_execution/subexperiment_executor.py b/execution/strategies/subexperiment_execution/subexperiment_executor.py
index 7e4d2359ffa5bc9b339dadd9158fd309321727e0..033612474dcc00ef90b9c28cf94f7415fe83fe78 100644
--- a/execution/strategies/subexperiment_execution/subexperiment_executor.py
+++ b/execution/strategies/subexperiment_execution/subexperiment_executor.py
@@ -1,8 +1,18 @@
 # Wrapper that makes the execution method of a subexperiment interchangable.
 
 import os
+import run_uc
 
-dirname = os.path.dirname(__file__)
-os.chdir(dirname+"/../../")
 def execute(subexperiment_config):
-    os.system(f"./run_uc{subexperiment_config.use_case}.sh {subexperiment_config.counter} {subexperiment_config.dim_value} {subexperiment_config.replicas} {subexperiment_config.partitions} {subexperiment_config.cpu_limit} {subexperiment_config.memory_limit} {subexperiment_config.kafka_streams_commit_interval_ms} {subexperiment_config.execution_minutes}")
\ No newline at end of file
+    run_uc.main(
+        exp_id=subexperiment_config.counter,
+        uc_id=subexperiment_config.use_case,
+        dim_value=int(subexperiment_config.dim_value),
+        instances=int(subexperiment_config.replicas),
+        partitions=subexperiment_config.partitions,
+        cpu_limit=subexperiment_config.cpu_limit,
+        memory_limit=subexperiment_config.memory_limit,
+        commit_interval_ms=subexperiment_config.kafka_streams_commit_interval_ms,
+        execution_minutes=int(subexperiment_config.execution_minutes),
+        reset=False,
+        reset_only=False)