diff --git a/src/bayesvalidrox/surrogate_models/exp_designs.py b/src/bayesvalidrox/surrogate_models/exp_designs.py
index b2a091a1e81c908f916d0ba581995cc8f74fd052..6b7c9600a50884cb8c0308ac2df2d2cf6a249891 100644
--- a/src/bayesvalidrox/surrogate_models/exp_designs.py
+++ b/src/bayesvalidrox/surrogate_models/exp_designs.py
@@ -249,14 +249,10 @@ class ExpDesigns(InputSpace):
             warnings.warn('The given model outputs will be overwritten for the chosen ExpDesign settings.')
 
         # Case 2 : X is not given
+        n_samples = int(self.n_init_samples)
         if n_samples < 0:
             raise ValueError('A negative number of samples cannot be created. '
                              'Please provide positive n_samples')
-        n_samples = int(n_samples)
-
-        if self.n_init_samples is None:
-            self.n_init_samples = n_samples
-
         samples = None
         sampling_method = self.sampling_method
 
diff --git a/tests/test_BayesInference.py b/tests/test_BayesInference.py
index 59b554b1a437d7a21eb944bdccccb8420a18d803..32c28112ac42ddbaa19177229cfa6f0f168079ee 100644
--- a/tests/test_BayesInference.py
+++ b/tests/test_BayesInference.py
@@ -113,7 +113,7 @@ def test_create_inference() -> None:
 
     mm = PCE(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
+    expdes.generate_ED(max_pce_deg=np.max(mm._pce_deg))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -395,7 +395,7 @@ def test_setup_inference_noobservation() -> None:
 
     mm = MetaModel(inp)
     mm.n_params = 1
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.Output.names = ['Z']
@@ -430,7 +430,7 @@ def test_setup_inference() -> None:
 
     mm = MetaModel(inp)
     mm.n_params = 1
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -463,7 +463,7 @@ def test_setup_inference_priorsamples() -> None:
 
     mm = MetaModel(inp)
     mm.n_params = 1
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -497,7 +497,7 @@ def test_setup_inference_valid() -> None:
 
     mm = MetaModel(inp)
     mm.n_params = 1
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations_valid = {'Z': np.array([0.45])}
@@ -531,7 +531,7 @@ def test_setup_inference_noname() -> None:
 
     mm = MetaModel(inp)
     mm.n_params = 1
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -574,7 +574,7 @@ def test_perform_bootstrap() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -617,7 +617,7 @@ def test_perform_bootstrap_bayesloocv() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -663,7 +663,7 @@ def create_error_model_prior() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -705,7 +705,7 @@ def create_error_model_posterior() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
@@ -754,7 +754,7 @@ def test_posterior_predictive() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
     y_hat, y_std = mm.eval_metamodel(prior_samples)
 
     mod = PL()
@@ -806,7 +806,7 @@ def test_posterior_predictive_rejection() -> None:
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
     y_hat, y_std = mm.eval_metamodel(prior_samples)
 
     mod = PL()
@@ -1057,7 +1057,7 @@ if __name__ == '__main__':
     mm = PCE(inp)
     mm.n_params = 1
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    expdes.generate_ED(max_pce_deg=np.max(1))
     # y_hat, y_std = mm.eval_metamodel(prior_samples)
 
     mod = PL()
diff --git a/tests/test_ExpDesign.py b/tests/test_ExpDesign.py
index aaf36be527eb6cef725c4a769ee62f8bea26169a..9cef6cd13faf6e79e9dea9539f28c70b1ae59215 100644
--- a/tests/test_ExpDesign.py
+++ b/tests/test_ExpDesign.py
@@ -206,7 +206,8 @@ def test_generate_ED() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp)
-    exp.generate_ED(4)
+    exp.n_init_samples = 4
+    exp.generate_ED()
     
 def test_generate_ED_negsamplenum():
     """
@@ -216,9 +217,10 @@ def test_generate_ED_negsamplenum():
     inp = Input()
     inp.add_marginals()
     inp.Marginals[0].input_data = x
-    exp = ExpDesigns(inp, sampling_method = 'random')   
+    exp = ExpDesigns(inp, sampling_method = 'random') 
+    exp.n_init_samples = -1  
     with pytest.raises(ValueError) as excinfo:
-        exp.generate_ED(-1)
+        exp.generate_ED()
     assert str(excinfo.value) == 'A negative number of samples cannot be created. Please provide positive n_samples'
 
 def test_generate_ED_usernoX() -> None:
@@ -230,8 +232,9 @@ def test_generate_ED_usernoX() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.n_init_samples = 4
     with pytest.raises(AttributeError) as excinfo:
-        exp.generate_ED(4)
+        exp.generate_ED()
     assert str(excinfo.value) == 'User-defined sampling cannot proceed as no samples provided. Please add them to this class as attribute X'
 
 def test_generate_ED_userXdimerr() -> None:
@@ -244,9 +247,10 @@ def test_generate_ED_userXdimerr() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.n_init_samples = 4
     exp.X = X
     with pytest.raises(AttributeError) as excinfo:
-        exp.generate_ED(4)
+        exp.generate_ED()
     assert str(excinfo.value) == 'The provided samples shuld have 2 dimensions'
 
 def test_generate_ED_Xnouser() -> None:
@@ -259,8 +263,9 @@ def test_generate_ED_Xnouser() -> None:
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp)
     exp.X = [[0],[1]]
+    exp.n_init_samples = 4
     with pytest.warns(UserWarning) as excinfo:
-        exp.generate_ED(4)
+        exp.generate_ED()
     assert exp.sampling_method == 'user'
     
 def test_generate_ED_Ynouser() -> None:
@@ -273,8 +278,9 @@ def test_generate_ED_Ynouser() -> None:
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp)
     exp.Y = {'a': [1]}
+    exp.n_init_samples = 4
     with pytest.warns(UserWarning) as excinfo:
-        exp.generate_ED(4)
+        exp.generate_ED()
     assert exp.Y is None
     
 if 0: # TODO: JDist not created?
@@ -289,7 +295,8 @@ if 0: # TODO: JDist not created?
         inp.Marginals[0].input_data = x
         exp = ExpDesigns(inp, sampling_method = 'user')
         exp.X = X
-        exp.generate_ED(4)
+        exp.n_init_samples = 4
+        exp.generate_ED()
     
 # TODO: this looks like a pcm-sampler issue
 if 0:
@@ -302,7 +309,8 @@ if 0:
         inp.add_marginals()
         inp.Marginals[0].input_data = x
         exp = ExpDesigns(inp, sampling_method = 'PCM')
-        exp.generate_ED(4)
+        exp.n_init_samples = 4
+        exp.generate_ED()
     
 def test_generate_ED_random() -> None:
     """
@@ -313,7 +321,8 @@ def test_generate_ED_random() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp, sampling_method = 'random')
-    exp.generate_ED(4)
+    exp.n_init_samples = 4
+    exp.generate_ED()
 
 if 0: # TODO: JDist not created?
     def test_generate_ED_usertrafo() -> None:
@@ -328,7 +337,8 @@ if 0: # TODO: JDist not created?
         exp = ExpDesigns(inp, sampling_method = 'user')
         exp.meta_Model_type = 'gpe'
         exp.X = X
-        exp.generate_ED(4)
+        exp.n_init_samples = 4
+        exp.generate_ED()
     
 def test_generate_ED_randomtrafo() -> None:
     """
@@ -339,7 +349,8 @@ def test_generate_ED_randomtrafo() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp, sampling_method = 'random')
-    exp.generate_ED(4)
+    exp.n_init_samples = 4
+    exp.generate_ED()
     
 def test_generate_ED_latin() -> None:
     """
@@ -350,7 +361,8 @@ def test_generate_ED_latin() -> None:
     inp.add_marginals()
     inp.Marginals[0].input_data = x
     exp = ExpDesigns(inp, sampling_method = 'latin-hypercube')
-    exp.generate_ED(4,1)
+    exp.n_init_samples = 4
+    exp.generate_ED(1)
     
     
 #%% Test ExpDesign.read_from_file
diff --git a/tests/test_MCMC.py b/tests/test_MCMC.py
index 31b24598683befbbf38c31b1cbe1e7fd22409537..3732384904ec5373a5a9be50ba4b8bebcd97d734 100644
--- a/tests/test_MCMC.py
+++ b/tests/test_MCMC.py
@@ -54,7 +54,7 @@ def test_MCMC() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
+    expdes.generate_ED(max_pce_deg=2)
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
@@ -102,7 +102,7 @@ if 0: # TODO: issue not resolved here, issue appears due to specific test setup,
     
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
+        expdes.generate_ED(max_pce_deg=2)
     
         mod = PL()
         mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
@@ -197,7 +197,7 @@ if __name__ == '__main__':
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
+    expdes.generate_ED(max_pce_deg=2)
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
diff --git a/tests/test_engine.py b/tests/test_engine.py
index 78ec29822f5fe91764965ff8c9c792aadbb5fa1f..eb034d6d9374c636487dcb47e9c0ac59b3008fc0 100644
--- a/tests/test_engine.py
+++ b/tests/test_engine.py
@@ -149,7 +149,8 @@ def test__BME_Calculator() -> None:
     mm = PCE(inp)
     mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     mod.Output.names = ['Z']
     engine = Engine(mm, mod, expdes)
@@ -172,7 +173,8 @@ def test__BME_Calculator_rmse() -> None:
     mm = PCE(inp)
     mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     mod.Output.names = ['Z']
     engine = Engine(mm, mod, expdes)
@@ -195,7 +197,8 @@ def test__BME_Calculator_lik() -> None:
     mm = PCE(inp)
     mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     mod.Output.names = ['Z']
     engine = Engine(mm, mod, expdes)
@@ -223,7 +226,8 @@ def test__BME_Calculator_2d() -> None:
     mm = PCE(inp)
     mm.fit([[0.0, 0.0], [0.5, 0.1], [1.0, 0.9]], {'Z': [[0.5], [0.4], [0.5]]})
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     mod.n_obs = 1
     mod.Output.names = ['Z']
@@ -301,7 +305,8 @@ def test__posteriorPlot() -> None:
     inp.Marginals[0].parameters = [0, 1]
     mm = MetaModel(inp)
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     posterior = np.array([[0], [0.1], [0.2]])
     engine = Engine(mm, mod, expdes)
@@ -321,7 +326,8 @@ def test__posteriorPlot_2d() -> None:
     inp.Marginals[1].parameters = [0, 1]
     mm = MetaModel(inp)
     expdes = ExpDesigns(inp)
-    expdes.generate_ED(2, max_pce_deg=1)
+    expdes.n_init_samples = 2
+    expdes.generate_ED(max_pce_deg=1)
     mod = PL()
     posterior = np.array([[0, 0], [0.1, 1.0], [0.2, 0.5]])
     engine = Engine(mm, mod, expdes)