diff --git a/.gitignore b/.gitignore
index 3ecdfc9dd61c77ead268c28b9787b65ad31078eb..31cfe991f3cb38160cc5a2b330ca4725ebaa834f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@ htmlcov/
 .pytest_cache
 /test/data/
 report.html
+/TestExperiment/
diff --git a/run.py b/run.py
index 3cedc2d95260675b9045c594787d5c32aee36a8f..c952359578874fb13dd6aa8da7d0655f531998ac 100644
--- a/run.py
+++ b/run.py
@@ -38,25 +38,44 @@ class run(object):
 
 
 class ExperimentSetup:
+    """
+    params:
+    trainable: Train new model if true, otherwise try to load existing model
+    """
 
-    def __init__(self):
+    def __init__(self, trainable=False):
         self.data_path = None
         self.experiment_path = None
         self.experiment_name = None
-        self.trainable = False
-        self.setup_experiment()
+        self.trainable = None
+        self.fraction_of_train = None
+        self.use_all_stations_on_all_data_sets = None
+        self.setup_experiment(trainable)
 
-    def setup_experiment(self):
+    def _set_param(self, param, value):
+        setattr(self, param, value)
+        logging.debug(f"set attribute: {param}={value}")
+
+    def setup_experiment(self, trainable):
 
         # set data path of this experiment
-        self.data_path = helpers.prepare_host()
+        self._set_param("data_path", helpers.prepare_host())
 
         # set experiment name
-        experiment_date = parser.parse_args(["experiment_date"])
-        self.experiment_name, self.experiment_path = helpers.set_experiment_name(experiment_date=experiment_date)
+        exp_date = args.experiment_date
+        exp_name, exp_path = helpers.set_experiment_name(experiment_date=exp_date)
+        self._set_param("experiment_name", exp_name)
+        self._set_param("experiment_path", exp_path)
+        helpers.check_path_and_create(self.experiment_path)
+
+        # set if model is trainable
+        self._set_param("trainable", trainable)
+
+        # set fraction of train
+        self._set_param("fraction_of_train", 0.8)
 
-        # set if model shall be trained or not
-        self.trainable = True
+        # use all stations on all data sets (train, val, test)
+        self._set_param("use_all_stations_on_all_data_sets", True)
 
 
 class PreProcessing(run):
@@ -83,11 +102,12 @@ class PostProcessing(run):
 if __name__ == "__main__":
 
     parser = argparse.ArgumentParser()
-    parser.add_argument('experiment date', metavar='exp_date', type=str, nargs=1,  help='set experiment date as string',
-                        default=None)
+    parser.add_argument('--experiment_date', metavar='--exp_date', type=str, nargs=1, default=None,
+                        help="set experiment date as string")
+    args = parser.parse_args()
 
     with run():
-        exp_setup = ExperimentSetup()
+        exp_setup = ExperimentSetup(trainable=True)
 
         PreProcessing(exp_setup)
 
diff --git a/src/helpers.py b/src/helpers.py
index 6f8af63be8807fc5be006786ce51b2a558a7423a..4fd5cc2b965d38a090a53dfc63e6f2d7aa582c3f 100644
--- a/src/helpers.py
+++ b/src/helpers.py
@@ -161,7 +161,7 @@ def prepare_host():
 def set_experiment_name(experiment_date=None, experiment_path=None):
 
     if experiment_date is None:
-        experiment_name = ""
+        experiment_name = "TestExperiment"
     else:
         experiment_name = f"{experiment_date}_network/"
     if experiment_path is None: