diff --git a/scheduler.py b/scheduler.py
index 34a9f914d031e1ddd9d5788c401a80bb26a1c322..3eb006f01d0f379c86db660d5d9174e9bed29dc4 100755
--- a/scheduler.py
+++ b/scheduler.py
@@ -122,39 +122,17 @@ def run_ENS(begin, end, depends_on=None):
     #           + begin.strftime('%Y-%m-%d_%H:%M'), depends_on=[id2])
     return id2
 
-
-def gen_synth_obs(time, depends_on=None):
-
-    # prepare state of nature run, from which observation is sampled
-    id = slurm_submit(cluster.python+' '+cluster.scriptsdir+'/prepare_nature.py '
-                      +time.strftime('%Y-%m-%d_%H:%M'), name='prep_nature',
-         cfg_update=dict(time="2"), depends_on=[depends_on])
-
-    for channel_id in exp.sat_channels:
-        s = my_Slurm("pre_gensynthobs", cfg_update=dict(time="2"))
-        id = s.run(cluster.python+' '+cluster.scriptsdir+'/pre_gen_synth_obs.py '
-                   +time.strftime('%Y-%m-%d_%H:%M ') + str(channel_id),
-                   depends_on=[id])
-
-        s = my_Slurm("gensynth", cfg_update=dict(ntasks="48", time="20"))
-        cmd = 'cd '+cluster.dartrundir+'; mpirun -np 48 ./perfect_model_obs; '  \
-              + 'cat obs_seq.out >> obs_seq_all.out'  # combine all observations
-        id2 = s.run(cmd, depends_on=[id])
-    return id2
-
-
 def assimilate(assim_time, background_init_time,
                prior_from_different_exp=False, depends_on=None):
-    """Run the assimilation process.
-
-    Expects a obs_seq.out file present in `dartrundir`
+    """Creates observations from a nature run and assimilates them.
 
     Args:
-        assim_time (dt.datetime): for timestamp of prior wrfout files
-        background_init_time (dt.datetime): for directory of prior wrfout files
+        assim_time (dt.datetime): timestamp of prior wrfout files
+        background_init_time (dt.datetime): 
+            timestamp to find the directory where the prior wrfout files are
         prior_from_different_exp (bool or str):
-            put a `str` if you want to take the prior from a different experiment
-            if False: use `archivedir` to get prior state
+            put a `str` to take the prior from a different experiment
+            if False: use `archivedir` (defined in config) to get prior state
             if str: use this directory to get prior state
     """
     id = depends_on
@@ -169,11 +147,6 @@ def assimilate(assim_time, background_init_time,
                       +time.strftime('%Y-%m-%d_%H:%M'), name='prep_nature',
          cfg_update=dict(time="2"), depends_on=[depends_on])
 
-    #s = my_Slurm("gensynth", cfg_update=dict(ntasks="48", time="20"))
-    #cmd = 'cd '+cluster.dartrundir+'; mpirun -np 48 ./perfect_model_obs; '  \
-    #      + 'cat obs_seq.out >> obs_seq_all.out'  # combine all observations
-    #id2 = s.run(cmd, depends_on=[id])
-
     # prepare prior model state
     s = my_Slurm("preAssim", cfg_update=dict(time="2"))
     id = s.run(cluster.python+' '+cluster.scriptsdir+'/pre_assim.py '
@@ -223,8 +196,11 @@ timedelta_integrate = dt.timedelta(minutes=30)
 timedelta_btw_assim = dt.timedelta(minutes=30)
 
 clear_logs(backup_existing_to_archive=True)
+id = None
+
+start_from_existing_state = False
+is_new_run = not start_from_existing_state
 
-is_new_run = False
 if is_new_run:
     id = prepare_wrfinput()  # create initial conditions
 
@@ -236,21 +212,20 @@ if is_new_run:
                 depends_on=id)
     time = integration_end_time
     first_guess = False
-else:
-    # id = prepare_wrfinput()  # create initial conditions
-    id = None
+    
+elif start_from_existing_state:
+    id = prepare_wrfinput()  # create initial conditions
+    
     # get initial conditions from archive
     background_init_time = dt.datetime(2008, 7, 30, 10)
     time = dt.datetime(2008, 7, 30, 10,30)
     exppath_arch = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.11_LMU_filter'
-    first_guess = False #exppath_arch
-    #id = update_wrfinput_from_archive(time, background_init_time, exppath_arch,
-    #                                  depends_on=id)
+    first_guess = exppath_arch
+    id = update_wrfinput_from_archive(time, background_init_time, exppath_arch,
+                                      depends_on=id)
 
 while time <= dt.datetime(2008, 7, 30, 16):
-
      assim_time = time
-     #id = gen_synth_obs(assim_time, depends_on=id)
      id = assimilate(assim_time,
                      background_init_time,
                      prior_from_different_exp=first_guess,