diff --git a/ENDA.py b/ENDA.py
index 6852981adf2ded9a9840d38ef32bbb53f088d7bf..1b07e81196ecd65c18af87816f11dcc0d5a4485a 100644
--- a/ENDA.py
+++ b/ENDA.py
@@ -136,7 +136,7 @@ def eakf(xb,o,var_o,xcoord,ocoord,dist,\
 
         # Store innovation wrt to ensemble mean
         if return_covariances_increments_and_innovations:
-            innovations_mean[i] = o[i]-yp[i].mean()
+            innovations_mean[i] = o[i]-yp[i,:].mean()
 
         # Determine analysis increments in observation space
         # weight_p is a scalar
@@ -295,12 +295,12 @@ class cycle:
         backgrounds       = np.zeros((ncycles,state_vector_length,nens)) + np.nan
         analyses          = np.zeros((ncycles,state_vector_length,nens)) + np.nan
         model_equivalents = np.zeros((ncycles,nobs,nens)) + np.nan
-        if cbl_settings['do_parameter_estimation'] and cbl_settings['return_covariances_increments_and_innovations']:
-            increments = np.zeros((ncycles,nobs,npar)) + np.nan
+        if cbl_settings['return_covariances_increments_and_innovations']:
             cov_py = np.zeros((ncycles,nobs,npar)) + np.nan
             cov_pp = np.zeros((ncycles,nobs,npar)) + np.nan
             cov_yy = np.zeros((ncycles,nobs)) + np.nan
             innov = np.zeros((ncycles,nobs)) + np.nan
+            increments = np.zeros((ncycles,nobs,npar)) + np.nan
 
         # Turn inflation coefficients into an array
         inflation_coefficients_rtps = np.ones(state_vector_length)*inflation_rtps_alpha
@@ -473,7 +473,7 @@ class cycle:
         self.zt = nr.zt
         self.nens = nens
         self.initial_perturbed_parameters = model.initial_perturbed_parameters
-        if cbl_settings['do_parameter_estimation'] and cbl_settings['return_covariances_increments_and_innovations']:
+        if cbl_settings['return_covariances_increments_and_innovations']:
             self.cov_py = cov_py
             self.cov_pp = cov_pp
             self.cov_yy = cov_yy
@@ -505,13 +505,15 @@ class experiment:
             self.truths = deepcopy(exp.truths)
             self.observations = deepcopy(exp.observations)
             self.obs_coordinates = deepcopy(exp.obs_coordinates)
+            self.obs_error_sdev_generate = np.ones(self.nobs)*self.obs_error_sdev_generate
+            self.obs_error_sdev_assimilate = np.ones(self.nobs)*self.obs_error_sdev_assimilate
             if not self.do_parameter_estimation:
                 self.nr.do_parameter_estimation = False
 
         # Get CBL settings from file
-        assert os.path.isfile(self.cbl_settings_file),\
-            f'CBL settings file {self.cbl_settings_file} does not exist'
-        with open(self.cbl_settings_file, 'r') as fp:
+        assert os.path.isfile(self.path+self.cbl_settings_file),\
+            f'CBL settings file {self.path+self.cbl_settings_file} does not exist'
+        with open(self.path+self.cbl_settings_file, 'r') as fp:
             self.cbl_settings = dict(json.load(fp))
 
         # Propagate parameter estimation settings to CBL model