diff --git a/Dockerfile b/Dockerfile
index ae2cef11c97fc74549c336fb78f7d1a820b0f646..e1ddb1551bb3ec3a90039a4ac7746dab17db30c5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,8 +8,7 @@ RUN pip install \
     geant-service-orchestrator==${ARTIFACT_VERSION}
 
 # Create the directory for the configuration and copy the example config into it
-# NOTE: a real config must be mounted at
-# /etc/gso/config.json when running the container
+# NOTE: a real config must be mounted at /etc/gso/config.json when running the container
 RUN mkdir -p /etc/gso
 COPY gso/oss-params-example.json /etc/gso/config.json
 
diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py
index 17a386662d758f214eba5b22cad26995edff3c14..355abad0193b4585a45615c221ec19b4c0aa3784 100644
--- a/gso/services/provisioning_proxy.py
+++ b/gso/services/provisioning_proxy.py
@@ -14,7 +14,7 @@ from orchestrator.forms import FormPage, ReadOnlyField
 from orchestrator.forms.validators import Accept, Label, LongText
 from orchestrator.types import FormGenerator, State, UUIDstr, strEnum
 from orchestrator.utils.json import json_dumps
-from orchestrator.workflow import Step, StepList, abort
+from orchestrator.workflow import Step, StepList, abort, init
 from pydantic import validator
 
 from gso import settings
@@ -340,7 +340,7 @@ def pp_interaction(provisioning_step: Step, attempts: int, abort_on_failure: boo
     """
     should_retry_pp_steps = conditional(lambda state: not state.get("pp_did_succeed"))
 
-    pp_steps = StepList([_reset_pp_success_state])
+    pp_steps = init >> _reset_pp_success_state
 
     for _ in range(attempts):
         pp_steps >>= (
diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py
index 948e9070e5475532054391f95b4c0ec5edcd7676..8b9fc6b4f2ec02a7cb1846efabc7caaa64cda085 100644
--- a/gso/workflows/iptrunk/migrate_iptrunk.py
+++ b/gso/workflows/iptrunk/migrate_iptrunk.py
@@ -18,6 +18,7 @@ from gso.products.product_types.iptrunk import Iptrunk
 from gso.products.product_types.router import Router
 from gso.services import provisioning_proxy
 from gso.services.provisioning_proxy import pp_interaction
+from gso.workflows.iptrunk.utils import set_isis_to_90000
 
 logger = getLogger(__name__)
 
@@ -115,19 +116,6 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
     return old_side_input.dict() | new_side_input.dict() | {"replace_index": replace_index}
 
 
-@step("[COMMIT] Set ISIS metric to 90000")
-def set_isis_to_9000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
-    old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
-    subscription.iptrunk.iptrunk_isis_metric = 90000
-    provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
-
-    return {
-        "subscription": subscription,
-        "old_isis_metric": old_isis_metric,
-        "label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
-    }
-
-
 @step("[DRY RUN] Disable configuration on old router")
 def disable_old_config_dry(
     subscription: Iptrunk,
@@ -425,15 +413,13 @@ def migrate_iptrunk() -> StepList:
         init
         >> store_process_subscription(Target.MODIFY)
         >> unsync
-        >> pp_interaction(set_isis_to_9000, 3)
+        >> pp_interaction(set_isis_to_90000, 3)
         >> pp_interaction(disable_old_config_dry, 3)
         >> pp_interaction(disable_old_config_real, 3)
         >> pp_interaction(deploy_new_config_dry, 3)
         >> pp_interaction(deploy_new_config_real, 3)
         >> confirm_continue_move_fiber
-        # >> pp_interaction(run_interface_checks, 3, False)
         >> pp_interaction(deploy_new_isis, 3)
-        # >> pp_interaction(check_isis, 3, False)
         >> confirm_continue_restore_isis
         >> pp_interaction(restore_isis_metric, 3)
         >> pp_interaction(delete_old_config_dry, 3)
diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py
index bb638a33739941271b264c886e715acf3b2141bb..5fc602681214e154472f5fad07f526b74f0c44f0 100644
--- a/gso/workflows/iptrunk/terminate_iptrunk.py
+++ b/gso/workflows/iptrunk/terminate_iptrunk.py
@@ -12,6 +12,7 @@ from gso.products.product_types.iptrunk import Iptrunk
 from gso.services import ipam, provisioning_proxy
 from gso.services.ipam import V4ServiceNetwork, V6ServiceNetwork
 from gso.services.provisioning_proxy import pp_interaction
+from gso.workflows.iptrunk.utils import set_isis_to_90000
 
 
 def initial_input_form_generator() -> FormGenerator:
@@ -28,19 +29,6 @@ def initial_input_form_generator() -> FormGenerator:
     return user_input.dict()
 
 
-@step("[COMMIT] Set ISIS metric to 90000")
-def set_isis_to_9000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
-    old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
-    subscription.iptrunk.iptrunk_isis_metric = 90000
-    provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
-
-    return {
-        "subscription": subscription,
-        "old_isis_metric": old_isis_metric,
-        "label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
-    }
-
-
 @step("Drain traffic from trunk")
 def drain_traffic_from_ip_trunk(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
     provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
@@ -99,13 +87,12 @@ def terminate_iptrunk() -> StepList:
     run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True))
 
     config_steps = (
-        # StepList([set_isis_to_9000])
-        StepList()
-        >> pp_interaction(set_isis_to_9000, 3)
+        init
+        >> pp_interaction(set_isis_to_90000, 3)
         >> pp_interaction(deprovision_ip_trunk_dry, 3)
         >> pp_interaction(deprovision_ip_trunk_real, 3)
     )
-    ipam_steps = StepList([deprovision_ip_trunk_ipv4, deprovision_ip_trunk_ipv6])
+    ipam_steps = init >> deprovision_ip_trunk_ipv4 >> deprovision_ip_trunk_ipv6
 
     return (
         init
diff --git a/gso/workflows/iptrunk/utils.py b/gso/workflows/iptrunk/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..690cfc58b692efb143cb0caa5ef22ac081c3c36d
--- /dev/null
+++ b/gso/workflows/iptrunk/utils.py
@@ -0,0 +1,18 @@
+from orchestrator import step
+from orchestrator.types import State, UUIDstr
+
+from gso.products.product_types.iptrunk import Iptrunk
+from gso.services import provisioning_proxy
+
+
+@step("[COMMIT] Set ISIS metric to 90000")
+def set_isis_to_90000(subscription: Iptrunk, process_id: UUIDstr, tt_number: str) -> State:
+    old_isis_metric = subscription.iptrunk.iptrunk_isis_metric
+    subscription.iptrunk.iptrunk_isis_metric = 90000
+    provisioning_proxy.provision_ip_trunk(subscription, process_id, tt_number, "isis_interface", False)
+
+    return {
+        "subscription": subscription,
+        "old_isis_metric": old_isis_metric,
+        "label_text": "ISIS is being set to 90K by the provisioning proxy, please wait for the results",
+    }
diff --git a/gso/workflows/router/terminate_router.py b/gso/workflows/router/terminate_router.py
index e190bc47db1870fb5911ee6062f50fabfee7bcac..1de4c1618e95bc832351871d14f45ca08d002def 100644
--- a/gso/workflows/router/terminate_router.py
+++ b/gso/workflows/router/terminate_router.py
@@ -92,9 +92,7 @@ def terminate_router() -> StepList:
     run_si_removal = conditional(lambda subscription: "router_si_ipv4_network" in subscription.get("router", {}))
 
     ipam_steps = (
-        StepList([deprovision_loopback_ips])
-        >> run_si_removal(deprovision_si_ips)
-        >> run_ias_removal(deprovision_lt_ips)
+        init >> deprovision_loopback_ips >> run_si_removal(deprovision_si_ips) >> run_ias_removal(deprovision_lt_ips)
     )
 
     return (