diff --git a/SAS/TMSS/src/tmss/tmssapp/subtasks.py b/SAS/TMSS/src/tmss/tmssapp/subtasks.py
index 506eafd5a8aa495d4ac5a44b20dc6084ae2892a6..8a126d9a3f1d68c0d23a23972665f318d8a99d46 100644
--- a/SAS/TMSS/src/tmss/tmssapp/subtasks.py
+++ b/SAS/TMSS/src/tmss/tmssapp/subtasks.py
@@ -617,10 +617,6 @@ def check_prerequities_for_scheduling(subtask: Subtask) -> bool:
 
     return True
 
-def _assign_or_unassign_resources(subtask: Subtask):
-    if subtask.state.value not in [SubtaskState.Choices.SCHEDULING.value, SubtaskState.Choices.UNSCHEDULING.value]:
-        raise SubtaskSchedulingException("Cannot assign resources for subtask id=%d because it is not in (UN)SCHEDULING state. "
-                                         "Current state=%s" % (subtask.pk, subtask.state.value))
 
 def _create_ra_specification(_subtask):
     # Should we do something with station list, for 'detecting' conflicts it can be empty
@@ -628,7 +624,7 @@ def _create_ra_specification(_subtask):
     return { 'tmss_id': _subtask.id,
              'task_type': _subtask.specifications_template.type.value.lower(),
              'task_subtype': parset_dict.get("Observation.processSubtype","").lower(),
-             'status': 'prescheduled',
+             'status': 'prescheduled' if _subtask.state.value == SubtaskState.Choices.SCHEDULING.value else 'approved',
              'starttime': _subtask.start_time,
              'endtime': _subtask.stop_time,
              'cluster': _subtask.cluster.name,
@@ -636,7 +632,7 @@ def _create_ra_specification(_subtask):
              'specification': parset_dict }
 
 
-def assign_resources(subtask: Subtask):
+def assign_or_unassign_resources(subtask: Subtask):
     """
     :param subtask:
     """
@@ -909,38 +905,6 @@ def get_previous_related_task_blueprint_with_time_offset(task_blueprint):
 
     return previous_related_task_blueprint, time_offset
 
-# todo: maybe this can now be replaced by subtask.relative_start_time
-def calculate_start_time(observation_subtask: Subtask):
-    """
-    Calculate the start time of an observation subtask. It should calculate the starttime in case of 'C-T-C train'
-    The start time of an observation depends on the start_time+duration and offset time of the previous observation
-    and so its scheduling relations should be known.
-    If there is no previous observation the 'default' start time is in two minutes from now
-    For demo purposes, will be changed into dynamic scheduled in the future
-    Note that the method is not robust now when previous start time is unknown. Also parallel observations are
-    not supported yet
-    :param observation_subtask:
-    :return: start_time (utc time)
-    """
-    previous_related_task_blueprint, time_offset = get_previous_related_task_blueprint_with_time_offset(observation_subtask.task_blueprint)
-    if previous_related_task_blueprint is None:
-        # This is the first observation so take start time 2 minutes from now
-        now = datetime.utcnow()
-        next_start_time = now + timedelta(minutes=+2, seconds=-now.second, microseconds=-now.microsecond)
-    else:
-        # Get the duration of last/previous observation
-        duration_in_sec = previous_related_task_blueprint.specifications_doc["duration"]
-        logger.info("Duration of previous observation '%s' (id=%s) is %d seconds",
-                    previous_related_task_blueprint.pk, previous_related_task_blueprint.pk, duration_in_sec)
-        # Get the previous observation subtask, should actually be one
-        lst_previous_subtasks_obs = [st for st in previous_related_task_blueprint.subtasks.all() if st.specifications_template.type.value == SubtaskType.Choices.OBSERVATION.value]
-        previous_subtask_obs = lst_previous_subtasks_obs[0]
-        logger.info("The previous observation subtask is id=%s", previous_subtask_obs.pk)
-        if previous_subtask_obs.start_time is None:
-            raise SubtaskSchedulingException("Cannot compute start_time for subtask id=%s because the its predecessor id=%s has not start_time" %(observation_subtask.id, previous_subtask_obs.id))
-        next_start_time = previous_subtask_obs.start_time + timedelta(seconds=duration_in_sec+time_offset)
-    return next_start_time
-
 
 def schedule_observation_subtask(observation_subtask: Subtask):
     ''' Schedule the given observation_subtask