diff --git a/UserDefinedOptimization.py b/UserDefinedOptimization.py
index 2d747e8cb3cb2589784e3c233e1a53c53f1433cf..05fbdff7956ee5908ba247b4ad4eccff70227d78 100644
--- a/UserDefinedOptimization.py
+++ b/UserDefinedOptimization.py
@@ -45,18 +45,18 @@ class UserDefinedOptimization(Optimizer):
     def run_objective(self, _config):
         # create an optimization directory using "self.prepare()"
         # accessible in 'self.optimization_dir'
-        self.prepare()
+        optimization_dir = self.prepare()
 
         # update the parameters of your configuration file(s)
         # (located in "self.optimization_dir") according to
         # "_config" (defined by the search algorithm)
-        with open(f"{self.optimization_dir}/layers_services.yaml") as f:
+        with open(f"{optimization_dir}/layers_services.yaml") as f:
             config_yaml = yaml.load(f, Loader=yaml.FullLoader)
         for layer in config_yaml["layers"]:
             for service in layer["services"]:
                 if service["name"] in ["myapplication"]:
                     service["quantity"] = _config["num_workers"]
-        with open(f"{self.optimization_dir}/layers_services.yaml", "w") as f:
+        with open(f"{optimization_dir}/layers_services.yaml", "w") as f:
             yaml.dump(config_yaml, f)
 
         # deploy the configurations using "self.launch()".