diff --git a/src/InSillyCloWeb/assemblies/urls.py b/src/InSillyCloWeb/assemblies/urls.py
index ea702e2330cdc9932429155e93ea729ea9998a76..66a9f4dcfdd09b69e31578f11448a46f7b9dd2db 100644
--- a/src/InSillyCloWeb/assemblies/urls.py
+++ b/src/InSillyCloWeb/assemblies/urls.py
@@ -68,7 +68,7 @@ urlpatterns = [
     path('assembly-simulator/create/<str:step>/', simulator_wizard, name='simulator-create-step'),
     path('assembly-simulator/create/', simulator_wizard, name='simulator-create'),
     path('assembly-simulator/<slug:uuid>/', views.JobSimulatorResult.as_view(), name='simulator-detail'),
-    path('assembly-simulator-job/<slug:uuid>/pcr/', views.JobPCREdit.as_view(), name='simulator-pcr-edit'),
+    path('assembly-simulator/<slug:uuid>/pcr-edit/', views.JobPCREdit.as_view(), name='simulator-pcr-edit'),
     path('assembly/<int:pk>/download/', views.AssemblyDetailDownloadView.as_view(), name='assembly-download'),
     path('assembly/<int:pk>/delete/', views.AssemblyDeleteView.as_view(), name='assembly-delete'),
     path('fragment', views.show_fragment, name='fragment'),
diff --git a/src/InSillyCloWeb/assemblies/views.py b/src/InSillyCloWeb/assemblies/views.py
index 3789e53cc8856e209c99d717ea66348ddf0b3c8f..872f4b9f8bcc0f11ef7419974d8c0a699cec13c0 100644
--- a/src/InSillyCloWeb/assemblies/views.py
+++ b/src/InSillyCloWeb/assemblies/views.py
@@ -1,4 +1,5 @@
 import traceback
+from abc import ABC, abstractmethod
 from io import BytesIO
 from typing import Tuple
 
@@ -116,14 +117,13 @@ class JobSimulatorResult(DetailView):
     slug_url_kwarg = 'uuid'
 
 
-class JobPCREdit(
+class SimulatorJobEdit(
+    ABC,
     UpdateView,
 ):
     model = models.SimulatorJob
-    form_class = forms.PCRModelForm
     slug_field = 'uuid'
     slug_url_kwarg = 'uuid'
-    success_url = reverse_lazy("assemblies:home")
     template_name = "assemblies/form_host.html"
 
     def form_valid(self, form):
@@ -132,5 +132,18 @@ class JobPCREdit(
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
-        context["title"] = _("PCR primers to use for gel simulation")
+        context["title"] = self.get_title()
         return context
+
+    @abstractmethod
+    def get_title(self):
+        pass
+
+
+class JobPCREdit(
+    SimulatorJobEdit,
+):
+    form_class = forms.PCRModelForm
+
+    def get_title(self):
+        return _("PCR primers to use for gel simulation")