diff --git a/bt5/erp5_base/bt/template_tool_id_list b/bt5/erp5_base/bt/template_tool_id_list
index 4e5e5756a775e108ab6c9605c385fd9f73c48f4b..e1566fd78eda9fbf7a4af72d80c2af440745e0fe 100644
--- a/bt5/erp5_base/bt/template_tool_id_list
+++ b/bt5/erp5_base/bt/template_tool_id_list
@@ -1,3 +1,2 @@
 portal_roundings
-portal_solver_processes
 portal_solvers
\ No newline at end of file
diff --git a/bt5/erp5_base/bt/template_workflow_id_list b/bt5/erp5_base/bt/template_workflow_id_list
index 757feda72427b203fe73406fe5511da8080d7595..5f4ac40982eb406b136fc74db53c91b4e2d58d67 100644
--- a/bt5/erp5_base/bt/template_workflow_id_list
+++ b/bt5/erp5_base/bt/template_workflow_id_list
@@ -2,8 +2,6 @@ assignment_workflow
 career_workflow
 coordinate_interaction_workflow
 currency_exchange_line_interaction_workflow
-delivery_causality_interaction_workflow
-delivery_causality_workflow
 delivery_movement_causality_interaction_workflow
 delivery_movement_simulation_interaction_workflow
 delivery_simulation_interaction_workflow
diff --git a/product/ERP5/Document/AcceptSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.py
similarity index 97%
rename from product/ERP5/Document/AcceptSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.py
index 0b3f6fdfb796bf034834e5c9b3f855bcc808b138..29f95a80be2c3e1546b927e9e61e12f33e15a7ab 100644
--- a/product/ERP5/Document/AcceptSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+
 ##############################################################################
 #
 # Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
@@ -29,7 +30,7 @@
 
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions
-from Products.ERP5.mixin.configurable_property_solver import ConfigurablePropertySolverMixin
+from erp5.component.mixin.ConfigurablePropertySolverMixin import ConfigurablePropertySolverMixin
 
 class AcceptSolver(ConfigurablePropertySolverMixin):
   """Target solver that accepts the values from the decision on the prevision.
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34369a9fbeb363e482bfe8ebdc210f8e2a4229df
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AcceptSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>AcceptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.AcceptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.AcceptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/AdoptSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.py
similarity index 97%
rename from product/ERP5/Document/AdoptSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.py
index 9d995797869ed3320579a8799135d87bedf6aea3..1375d9bdc60ebbe2330f8f7dac0299920d907232 100644
--- a/product/ERP5/Document/AdoptSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.py
@@ -29,7 +29,7 @@
 
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions
-from Products.ERP5.mixin.configurable_property_solver import ConfigurablePropertySolverMixin
+from erp5.component.mixin.ConfigurablePropertySolverMixin import ConfigurablePropertySolverMixin
 
 class AdoptSolver(ConfigurablePropertySolverMixin):
   """Target solver that adopts the values from the prevision on the decision.
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..29b5a01907ee5d1401ec2ac351ac2e6577cb6aa3
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.AdoptSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>AdoptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.AdoptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.AdoptSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/CategoryMembershipEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.py
similarity index 93%
rename from product/ERP5/Document/CategoryMembershipEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.py
index e75f85452aa0f035dbd0a03dee40976da0951d20..38b0f2ba7cfc228459eb901f85207a0cca757b5b 100644
--- a/product/ERP5/Document/CategoryMembershipEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+
 ##############################################################################
 #
 # Copyright (c) 2008-2009 Nexedi SA and Contributors. All Rights Reserved.
@@ -29,7 +30,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
+from erp5.component.mixin.EquivalenceTesterMixin import EquivalenceTesterMixin
 
 class CategoryMembershipEquivalenceTester(Predicate, EquivalenceTesterMixin):
   """
@@ -55,15 +56,15 @@ class CategoryMembershipEquivalenceTester(Predicate, EquivalenceTesterMixin):
                      )
 
   @staticmethod
-  def _getTestedPropertyValue(movement, property):
+  def _getTestedPropertyValue(movement, property): # pylint: disable=redefined-builtin
     # What about using getCategoryMembershipList for Simulation Movements ?
     return movement.getAcquiredCategoryMembershipList(property)
 
   @staticmethod
-  def getTestedPropertyText(movement, property):
+  def getTestedPropertyText(movement, property): # pylint: disable=redefined-builtin
     return ",".join([x.getTitleOrId() for x in movement.getAcquiredValueList(property)])
 
-  def _compare(self, prevision_movement, decision_movement, sorted=sorted):
+  def _compare(self, prevision_movement, decision_movement, sorted=sorted): # pylint: disable=redefined-builtin,arguments-differ
     """
     If prevision_movement and decision_movement don't match, it returns a
     list : (prevision_value, decision_value, message, mapping)
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d9896b241317977bda8d8b1ec22b10938a8694d
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.CategoryMembershipEquivalenceTester.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>CategoryMembershipEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.CategoryMembershipEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.CategoryMembershipEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/DateTimeEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.py
similarity index 98%
rename from product/ERP5/Document/DateTimeEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.py
index de4edaaf04c8a3ea19c46a5be1b2116363e5bed8..ea2b4e629c517b166c12a493b06eb786b59363d8 100644
--- a/product/ERP5/Document/DateTimeEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.py
@@ -30,7 +30,7 @@ from AccessControl import ClassSecurityInfo
 from DateTime import DateTime
 from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
+from erp5.component.mixin.EquivalenceTesterMixin import EquivalenceTesterMixin
 
 class DateTimeEquivalenceTester(Predicate, EquivalenceTesterMixin):
   """
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7dddde23c0f42896197d6f744d569ff2765af0a2
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.DateTimeEquivalenceTester.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>DateTimeEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.DateTimeEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.DateTimeEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/FIFODeliverySolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.py
similarity index 96%
rename from product/ERP5/Document/FIFODeliverySolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.py
index c009a1416b4863016ff9dfc186dd5ac0c42cdc6c..730954b5d2e5924fca9e120b52a34fc24066eac7 100644
--- a/product/ERP5/Document/FIFODeliverySolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.py
@@ -28,8 +28,9 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
+from erp5.component.interface.IDeliverySolver import IDeliverySolver
 
 class FIFODeliverySolver(XMLObject):
   """
@@ -54,7 +55,7 @@ class FIFODeliverySolver(XMLObject):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IDeliverySolver,)
+  zope.interface.implements(IDeliverySolver,)
 
   # IDeliverySolver Implementation
   security.declareProtected(Permissions.AccessContentsInformation, 'getTotalQuantity')
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..586a97df42c55afc98e71a1deeaa1ca7b03749c0
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FIFODeliverySolver.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>FIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.FIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.FIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/FloatEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.py
similarity index 99%
rename from product/ERP5/Document/FloatEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.py
index 831398859766be202f3984ec41c8312cee9d1318..758457254dc429e8e1a46c50a132dfd0f61c9fcc 100644
--- a/product/ERP5/Document/FloatEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.py
@@ -33,7 +33,7 @@ import decimal
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
+from erp5.component.mixin.EquivalenceTesterMixin import EquivalenceTesterMixin
 
 ROUNDING_OPTION_DICT = {name: value
                         for name, value in decimal.__dict__.items()
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7340a535749bf2c3b8bc138091ed293f9fa737dc
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>FloatEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.FloatEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.FloatEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/ItemListSplitSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.py
similarity index 94%
rename from product/ERP5/Document/ItemListSplitSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.py
index 3e6f87c4fd6d103c354ee7b69da6842f320737e7..4d166bc47b7f7a895992901c0401c7fc2bbec404 100644
--- a/product/ERP5/Document/ItemListSplitSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.py
@@ -30,11 +30,13 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Acquisition import aq_base
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.mixin.solver import SolverMixin
-from Products.ERP5.mixin.configurable import ConfigurableMixin
+from erp5.component.mixin.SolverMixin import SolverMixin
+from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
 from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
   """Target solver that split the prevision based on aggregated items.
@@ -60,8 +62,8 @@ class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
                     , PropertySheet.TargetSolver
                     )
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,
+  zope.interface.implements(ISolver,
+                            IConfigurable,
                            )
 
   def _solve(self, activate_kw=None):
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..542d6f5879e9439a08d8ebb948db146ddf760fba
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.ItemListSplitSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>ItemListSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.ItemListSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.ItemListSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/LIFODeliverySolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.py
similarity index 91%
rename from product/ERP5/Document/LIFODeliverySolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.py
index bd6e0ccca1431a435e5fcf627317a7eec65a19f9..12bb4927e876de08e1724978f1f915155bbd9ff5 100644
--- a/product/ERP5/Document/LIFODeliverySolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.py
@@ -28,8 +28,9 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.FIFODeliverySolver import FIFODeliverySolver
+from Products.ERP5Type import Permissions, PropertySheet
+from erp5.component.document.FIFODeliverySolver import FIFODeliverySolver
+from erp5.component.interface.IDeliverySolver import IDeliverySolver
 
 class LIFODeliverySolver(FIFODeliverySolver):
   """
@@ -54,7 +55,7 @@ class LIFODeliverySolver(FIFODeliverySolver):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IDeliverySolver,)
+  zope.interface.implements(IDeliverySolver,)
 
   def _getSimulationMovementList(self):
     """
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8e299ebe7e3b4d502eeee0f18054a3fa092bae85
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.LIFODeliverySolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>LIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.LIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.LIFODeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/MinimisePriceDeliverySolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.py
similarity index 94%
rename from product/ERP5/Document/MinimisePriceDeliverySolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.py
index f7dd6f1a96bd65e3e313812887e39a6503dafec4..14a15687aeedd1986c83a7efed2239584115b8dc 100644
--- a/product/ERP5/Document/MinimisePriceDeliverySolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.py
@@ -28,8 +28,9 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.FIFODeliverySolver import FIFODeliverySolver
+from Products.ERP5Type import Permissions, PropertySheet
+from erp5.component.document.FIFODeliverySolver import FIFODeliverySolver
+from erp5.component.interface.IDeliverySolver import IDeliverySolver
 
 class MinimisePriceDeliverySolver(FIFODeliverySolver):
   """
@@ -54,7 +55,7 @@ class MinimisePriceDeliverySolver(FIFODeliverySolver):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IDeliverySolver,)
+  zope.interface.implements(IDeliverySolver,)
 
   # IDeliverySolver Implementation
   security.declareProtected(Permissions.ModifyPortalContent, 'setTotalQuantity')
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2f9d639f48c6a6796e062395db1e908536dc8b66
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MinimisePriceDeliverySolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>MinimisePriceDeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.MinimisePriceDeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.MinimisePriceDeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/MovementSplitSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.py
similarity index 96%
rename from product/ERP5/Document/MovementSplitSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.py
index f7a8f28e2c8b793ef8573fff5aa39f4aa8cab326..7bf8fc97db0fe2fd820226f129d488bf8db9dd91 100644
--- a/product/ERP5/Document/MovementSplitSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.py
@@ -28,12 +28,14 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.mixin.solver import SolverMixin
-from Products.ERP5.mixin.configurable import ConfigurableMixin
+from erp5.component.mixin.SolverMixin import SolverMixin
+from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
 from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
 from Products.ERP5Type.Message import translateString
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
   meta_type = 'ERP5 Movement Split Solver'
@@ -54,8 +56,8 @@ class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
                     , PropertySheet.TargetSolver
                     )
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,
+  zope.interface.implements(ISolver,
+                            IConfigurable,
                            )
 
   def _solve(self, activate_kw=None):
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0b1b3609f9689b49e525524a5b61c7026b3ebeb3
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.MovementSplitSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>MovementSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.MovementSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.MovementSplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/NetConvertedQuantityEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.py
similarity index 97%
rename from product/ERP5/Document/NetConvertedQuantityEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.py
index 6264e047cd470fb8e082f7b52afb00a42870eeb0..c7cc9091ac74a9e6f31867e265da4ad0c307347c 100644
--- a/product/ERP5/Document/NetConvertedQuantityEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.py
@@ -28,7 +28,7 @@
 
 from AccessControl import ClassSecurityInfo
 
-from Products.ERP5.Document.FloatEquivalenceTester import FloatEquivalenceTester
+from erp5.component.document.FloatEquivalenceTester import FloatEquivalenceTester
 from Products.ERP5Type import Permissions
 
 class NetConvertedQuantityEquivalenceTester(FloatEquivalenceTester):
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5ba092499d60b8200a59aa2536b235f773ff23f5
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.NetConvertedQuantityEquivalenceTester.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>NetConvertedQuantityEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.NetConvertedQuantityEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.NetConvertedQuantityEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/QuantitySplitMoveSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.py
similarity index 92%
rename from product/ERP5/Document/QuantitySplitMoveSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.py
index 0c34088177c5c03572c8ffa26b15895bcd556d18..d5280071607908843098a67499d7e543b316f4a4 100644
--- a/product/ERP5/Document/QuantitySplitMoveSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.py
@@ -29,11 +29,10 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5Type.Globals import PersistentMapping
-from Products.ERP5.mixin.solver import SolverMixin
-from Products.ERP5.Document.QuantitySplitSolver import QuantitySplitSolver
+from Products.ERP5Type import Permissions
+from erp5.component.document.QuantitySplitSolver import QuantitySplitSolver
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class QuantitySplitMoveSolver(QuantitySplitSolver):
   """Target solver that split the prevision based on quantity.
@@ -54,8 +53,8 @@ class QuantitySplitMoveSolver(QuantitySplitSolver):
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,
+  zope.interface.implements(ISolver,
+                            IConfigurable,
                            )
 
   # ISolver Implementation
@@ -82,7 +81,7 @@ class QuantitySplitMoveSolver(QuantitySplitSolver):
     delivery_builder_list = [x for x in business_link.getDeliveryBuilderValueList() \
                              if x.getDeliveryPortalType() == delivery.getPortalType()]
     assert len(delivery_builder_list) == 1, \
-      "Expected to find only one builder on business link, but found %r" % (
+      "Expected to find only one builder on business link %s, but found %r" % (
       business_link.getRelativeUrl(), [x.getRelativeUrl() for x in delivery_builder_list])
     delivery_builder, = delivery_builder_list
     # Update simulation movements to make sure they match the new delivery
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dcf18a6e2b8e9c1b921f826742713763fb859862
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitMoveSolver.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>QuantitySplitMoveSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.QuantitySplitMoveSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.QuantitySplitMoveSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/QuantitySplitSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.py
similarity index 94%
rename from product/ERP5/Document/QuantitySplitSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.py
index 35fc4572dee84e4bf69c7a268a6d8f8852133591..e32d84f8d7c61323ff8b31ece34f2af2a2c64a0a 100644
--- a/product/ERP5/Document/QuantitySplitSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.py
@@ -30,12 +30,14 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Acquisition import aq_base
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
 from Products.ERP5Type.Globals import PersistentMapping
-from Products.ERP5.mixin.solver import SolverMixin
-from Products.ERP5.mixin.configurable import ConfigurableMixin
+from erp5.component.mixin.SolverMixin import SolverMixin
+from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
 from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
   """Target solver that split the prevision based on quantity.
@@ -61,8 +63,8 @@ class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
                     , PropertySheet.TargetSolver
                     )
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,
+  zope.interface.implements(ISolver,
+                            IConfigurable,
                            )
 
   # ISolver Implementation
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a7a37b2fea0e70a959f98d37d7c4824472285cc1
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.QuantitySplitSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>QuantitySplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.QuantitySplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.QuantitySplitSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/SolverDecision.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.py
similarity index 93%
rename from product/ERP5/Document/SolverDecision.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.py
index 9e0152c6d51850bfd088916a5efa89dadb3457dd..9053d99852fb5c57a5043b2eadb7e0a3ce3765d3 100644
--- a/product/ERP5/Document/SolverDecision.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.py
@@ -29,9 +29,10 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.mixin.configurable import ConfigurableMixin
+from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class SolverDecision(ConfigurableMixin, XMLObject):
   """Solver Decision
@@ -77,7 +78,7 @@ class SolverDecision(ConfigurableMixin, XMLObject):
   #   all property sheets of target solvers (with their configuration properties)
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IConfigurable,
+  zope.interface.implements(IConfigurable,
                            )
 
   security.declareProtected(Permissions.AccessContentsInformation,
@@ -119,11 +120,11 @@ class SolverDecision(ConfigurableMixin, XMLObject):
     if target_solver_type is None:
       return []
     solver_list = target_solver_type.getDeliverySolverValueList()
-    return filter(lambda x:x.test(self), solver_list)
+    return [x for x in solver_list if x.test(self)]
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'getExplanationMessage')
-  def getExplanationMessage(self, all=False):
+  def getExplanationMessage(self, all=False): # pylint: disable=redefined-builtin
     """
     Returns the HTML message that describes the detail of divergences to
     be solved with this Solver Decision.
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4af09daf03b36bc88a1cdd5dc6138875cf1d3c4b
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverDecision.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>SolverDecision</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.SolverDecision</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.SolverDecision</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/SolverProcess.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.py
similarity index 96%
rename from product/ERP5/Document/SolverProcess.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.py
index 05fbf0ca1138367410a42974231df07f16d3e38c..87b2be083f793917b2a5bbe7b032fe7ca5391804 100644
--- a/product/ERP5/Document/SolverProcess.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.py
@@ -29,11 +29,13 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
 from Products.CMFActivity.ActiveProcess import ActiveProcess
 from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
 from Products.ERP5.interfaces.movement import IMovement
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class SolverProcess(XMLObject, ActiveProcess):
   """
@@ -73,8 +75,8 @@ class SolverProcess(XMLObject, ActiveProcess):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,
+  zope.interface.implements(ISolver,
+                            IConfigurable,
                            )
 
   # Implementation
@@ -249,8 +251,9 @@ class SolverProcess(XMLObject, ActiveProcess):
           if divergence_tester.test(simulation_movement):
             if divergence_tester.explain(simulation_movement) in (None, []):
               continue
-            application_list = map(lambda x:x.getRelativeUrl(),
-                   solver_tool.getSolverDecisionApplicationValueList(movement, divergence_tester))
+            application_list = [
+              x.getRelativeUrl()
+              for x in solver_tool.getSolverDecisionApplicationValueList(movement, divergence_tester)]
             application_list.sort()
             solver_list = solver_tool.searchTargetSolverList(
               divergence_tester, simulation_movement)
@@ -264,7 +267,7 @@ class SolverProcess(XMLObject, ActiveProcess):
     solver_decision_list = self.objectValues(portal_type='Solver Decision')
     unmatched_solver_decision_list = set(solver_decision_list)
     for solver_decision_key, movement_dict in solver_decision_dict.items():
-      causality, delivery_list, solver_list = solver_decision_key
+      causality, _, solver_list = solver_decision_key
       movement_url_list = [x.getRelativeUrl() for x in movement_dict.keys()]
       movement_url_list.sort()
       matched_solver_decision_list = [
@@ -280,8 +283,7 @@ class SolverProcess(XMLObject, ActiveProcess):
         new_decision._setCausality(solver_decision_key[0])
         # If we have only one available automatic solver, we just use it
         # automatically.
-        automatic_solver_list = filter(lambda x:x.isAutomaticSolver(),
-                                       solver_list)
+        automatic_solver_list = [x for x in solver_list if x.isAutomaticSolver()]
         if len(automatic_solver_list) == 1:
           automatic_solver = automatic_solver_list[0]
           new_decision.setSolverValue(automatic_solver)
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.xml
new file mode 100644
index 0000000000000000000000000000000000000000..56c10fd511b3d53fca75f77c2d49776bd8afc9a5
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SolverProcess.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>SolverProcess</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.SolverProcess</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.SolverProcess</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/SpecialiseEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.py
similarity index 90%
rename from product/ERP5/Document/SpecialiseEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.py
index 6e2c16fc2cbf61e3f47f30517d453f421ae8ae4c..1cfd2f02713e66bafa28a92884bf7f6323f97dd5 100644
--- a/product/ERP5/Document/SpecialiseEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.py
@@ -26,7 +26,7 @@
 #
 ##############################################################################
 
-from Products.ERP5.Document.CategoryMembershipEquivalenceTester \
+from erp5.component.document.CategoryMembershipEquivalenceTester \
   import CategoryMembershipEquivalenceTester
 
 class SpecialiseEquivalenceTester(CategoryMembershipEquivalenceTester):
@@ -43,11 +43,11 @@ class SpecialiseEquivalenceTester(CategoryMembershipEquivalenceTester):
   movement_specialise_type = ()
   movement_exclude_specialise_type = ()
 
-  def _compare(self, prevision_movement, decision_movement, sorted=lambda x:x):
+  def _compare(self, prevision_movement, decision_movement, sorted=lambda x:x): # pylint: disable=super-on-old-class,redefined-builtin
     return super(SpecialiseEquivalenceTester, self)._compare(
       prevision_movement, decision_movement, sorted)
 
-  def _getTestedPropertyValue(self, movement, property):
+  def _getTestedPropertyValue(self, movement, property): # pylint: disable=redefined-builtin,arguments-differ
     if movement.getPortalType() == 'Simulation Movement':
       return movement.getCategoryMembershipList(property)
     # following line would work for prevision movements, but it is slower
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..56e6be4f3cccf6a9fb0cf7df0e9b8f80c2eb3e70
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.SpecialiseEquivalenceTester.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>SpecialiseEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.SpecialiseEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.SpecialiseEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/StringEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.py
similarity index 97%
rename from product/ERP5/Document/StringEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.py
index 4f4efa6b1391d6185959f65eec7d417cb32fbaee..af9a564e13c9899be973ec3bdd76fe2fa7f1f64c 100644
--- a/product/ERP5/Document/StringEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+
 ##############################################################################
 #
 # Copyright (c) 2008-2009 Nexedi SA and Contributors. All Rights Reserved.
@@ -31,7 +32,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
+from erp5.component.mixin.EquivalenceTesterMixin import EquivalenceTesterMixin
 
 class StringEquivalenceTester(Predicate, EquivalenceTesterMixin):
   """
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e61160fb79edaff2a09ad5afd526c4b77801c555
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.StringEquivalenceTester.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>StringEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.StringEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.StringEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/TradeModelSolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.py
similarity index 96%
rename from product/ERP5/Document/TradeModelSolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.py
index 6b27dd040bc9c702e8cd465fac642966e5f4fee0..202a24b9395f513d6c43b001b07fbd561c02e50b 100644
--- a/product/ERP5/Document/TradeModelSolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.py
@@ -28,8 +28,9 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.AcceptSolver import AcceptSolver
+from Products.ERP5Type import Permissions, PropertySheet
+from erp5.component.document.AcceptSolver import AcceptSolver
+from erp5.component.interface.ISolver import ISolver
 
 class TradeModelSolver(AcceptSolver):
   """Solve Divergences on Invoice Lines, and dependant trade model lines.
@@ -55,7 +56,7 @@ class TradeModelSolver(AcceptSolver):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,)
+  zope.interface.implements(ISolver,)
 
   def _solve(self, activate_kw=None):
     """
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..75116ac4b7ae9b86377c5f651cec43245ed7c337
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.TradeModelSolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>TradeModelSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.TradeModelSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.TradeModelSolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/UnifySolver.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.py
similarity index 96%
rename from product/ERP5/Document/UnifySolver.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.py
index 3a461a804accf75c8bd58ba8e14a2f5ecf4f5fc5..56d02f192325d931be87ef706b408b542c86cedb 100644
--- a/product/ERP5/Document/UnifySolver.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.py
@@ -29,8 +29,9 @@
 
 import zope.interface
 from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.AcceptSolver import AcceptSolver
+from Products.ERP5Type import Permissions, PropertySheet
+from erp5.component.document.AcceptSolver import AcceptSolver
+from erp5.component.interface.ISolver import ISolver
 
 class UnifySolver(AcceptSolver):
   """
@@ -53,7 +54,7 @@ class UnifySolver(AcceptSolver):
                     )
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,)
+  zope.interface.implements(ISolver,)
 
   def _getActualTargetMovement(self, movement, solved_property):
     # The movement might not be the right place to correct the
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bfc1c3c8afda24cf96909e083d7487db6a65fc39
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.UnifySolver.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>UnifySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.UnifySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.UnifySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/Document/VariationEquivalenceTester.py b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.py
similarity index 98%
rename from product/ERP5/Document/VariationEquivalenceTester.py
rename to bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.py
index d7f67b006887f24c6518a4fcfc51b4802b216126..8c2872a76ba5ce1776ab34293bd065c61c350f85 100644
--- a/product/ERP5/Document/VariationEquivalenceTester.py
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.py
@@ -29,7 +29,7 @@
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Core.Predicate import Predicate
 from Products.ERP5Type import Permissions, PropertySheet
-from Products.ERP5.mixin.equivalence_tester import EquivalenceTesterMixin
+from erp5.component.mixin.EquivalenceTesterMixin import EquivalenceTesterMixin
 
 class VariationEquivalenceTester(Predicate, EquivalenceTesterMixin):
   """
diff --git a/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.xml b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..403d99ee7408f60dbe03c8fa1ed685e33f4c95a6
--- /dev/null
+++ b/bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.VariationEquivalenceTester.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Document Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>VariationEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Document.VariationEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>document.erp5.VariationEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Document Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/interfaces/configurable.py b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IConfigurable.py
similarity index 100%
rename from product/ERP5/interfaces/configurable.py
rename to bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IConfigurable.py
diff --git a/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IConfigurable.xml b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IConfigurable.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c01be4d111bbdb53c56000ee6b2fc1bb858b1cca
--- /dev/null
+++ b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IConfigurable.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Interface Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>IConfigurable</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.interfaces.configurable</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>interface.erp5.IConfigurable</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Interface Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/interfaces/delivery_solver.py b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IDeliverySolver.py
similarity index 100%
rename from product/ERP5/interfaces/delivery_solver.py
rename to bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IDeliverySolver.py
diff --git a/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IDeliverySolver.xml b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IDeliverySolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a0cdb31eec7de950f1c268adef655ff03642430e
--- /dev/null
+++ b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IDeliverySolver.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Interface Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>IDeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.interfaces.delivery_solver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>interface.erp5.IDeliverySolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Interface Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/interfaces/equivalence_tester.py b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.py
similarity index 99%
rename from product/ERP5/interfaces/equivalence_tester.py
rename to bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.py
index 9fc5edcc977050da93ea5f71fbbcaa0493283d88..d9240d5925f079bbac685ebfe574f32e9764517c 100644
--- a/product/ERP5/interfaces/equivalence_tester.py
+++ b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.py
@@ -28,7 +28,7 @@
 #
 ##############################################################################
 """
-Products.ERP5.interfaces.equivalence_tester
+erp5.component.interface.IEquivalenceTester
 """
 
 from zope.interface import Interface
diff --git a/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.xml b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d20eb1c63bffc69a87506d3437ae016e8286b37d
--- /dev/null
+++ b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.IEquivalenceTester.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Interface Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>IEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.interfaces.equivalence_tester</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>interface.erp5.IEquivalenceTester</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Interface Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/interfaces/solver.py b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.ISolver.py
similarity index 100%
rename from product/ERP5/interfaces/solver.py
rename to bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.ISolver.py
diff --git a/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.ISolver.xml b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.ISolver.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c1c9de0a15606b252c3c3395da95de6310196d5
--- /dev/null
+++ b/bt5/erp5_simulation/InterfaceTemplateItem/portal_components/interface.erp5.ISolver.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Interface Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>ISolver</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.interfaces.solver</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>interface.erp5.ISolver</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Interface Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/mixin/configurable.py b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.py
similarity index 95%
rename from product/ERP5/mixin/configurable.py
rename to bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.py
index 9c031eff58258b66d3274b70738d6cba5c0938a6..7424cfdbce83d9deb6638ed02eac3ae1c521f8e2 100644
--- a/product/ERP5/mixin/configurable.py
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.py
@@ -30,8 +30,9 @@ import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
 from Acquisition import aq_base
-from Products.ERP5Type import Permissions, interfaces
+from Products.ERP5Type import Permissions
 from Products.ERP5Type.Globals import PersistentMapping
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class ConfigurableMixin:
   """
@@ -47,7 +48,7 @@ class ConfigurableMixin:
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IConfigurable,)
+  zope.interface.implements(IConfigurable,)
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'getConfigurationProperty')
diff --git a/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.xml b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..84b6ad3905245d723b2a87b58f35506b427facff
--- /dev/null
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurableMixin.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Mixin Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>ConfigurableMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.mixin.configurable</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>mixin.erp5.ConfigurableMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Mixin Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/mixin/configurable_property_solver.py b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.py
similarity index 90%
rename from product/ERP5/mixin/configurable_property_solver.py
rename to bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.py
index 14a9d3a0ce9d61ed781512b9948027c324194de7..b5ef51ccf84956a286c6cc7ec123e3def3f2121d 100644
--- a/product/ERP5/mixin/configurable_property_solver.py
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.py
@@ -30,10 +30,12 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
+from Products.ERP5Type import Permissions, PropertySheet
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5.mixin.solver import SolverMixin
-from Products.ERP5.mixin.configurable import ConfigurableMixin
+from erp5.component.mixin.SolverMixin import SolverMixin
+from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
+from erp5.component.interface.ISolver import ISolver
+from erp5.component.interface.IConfigurable import IConfigurable
 
 class ConfigurablePropertySolverMixin(SolverMixin,
                                       ConfigurableMixin,
@@ -51,8 +53,8 @@ class ConfigurablePropertySolverMixin(SolverMixin,
   security = ClassSecurityInfo()
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
-  zope.interface.implements(interfaces.ISolver,
-                            interfaces.IConfigurable,)
+  zope.interface.implements(ISolver,
+                            IConfigurable,)
 
   # Default Properties
   property_sheets = ( PropertySheet.Base
diff --git a/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.xml b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cffff5aa0ca3b21cbc44302b8be018b4831358cd
--- /dev/null
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.ConfigurablePropertySolverMixin.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Mixin Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>ConfigurablePropertySolverMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.mixin.configurable_property_solver</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>mixin.erp5.ConfigurablePropertySolverMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Mixin Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/mixin/equivalence_tester.py b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.py
similarity index 97%
rename from product/ERP5/mixin/equivalence_tester.py
rename to bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.py
index c16a76400751fe3ec597461e8575e38054de1042..c535880b12be43cec42ae1f5db0a72b2b41d99c0 100644
--- a/product/ERP5/mixin/equivalence_tester.py
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.py
@@ -29,11 +29,12 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
-from Products.ERP5Type import Permissions, interfaces
+from Products.ERP5Type import Permissions
 from Products.ERP5Type.DivergenceMessage import DivergenceMessage
 from Products.ERP5Type.Message import Message
 from Products.PythonScripts.standard import html_quote as h
 from zLOG import LOG, WARNING
+from erp5.component.interface.IEquivalenceTester import IEquivalenceTester
 
 class EquivalenceTesterMixin:
   """
@@ -45,7 +46,7 @@ class EquivalenceTesterMixin:
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.IEquivalenceTester,)
+  zope.interface.implements(IEquivalenceTester,)
 
   # Implementation of IEquivalenceTester
   security.declarePrivate('testEquivalence')
@@ -96,7 +97,7 @@ class EquivalenceTesterMixin:
         )
 
   @staticmethod
-  def _getTestedPropertyValue(movement, property):
+  def _getTestedPropertyValue(movement, property): # pylint: disable=redefined-builtin
     """
     Getter returning the value for the given tested property
     """
diff --git a/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.xml b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..04deb6105627dd783be6baaf204b81ecfa94c547
--- /dev/null
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.EquivalenceTesterMixin.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Mixin Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>EquivalenceTesterMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.mixin.equivalence_tester</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>mixin.erp5.EquivalenceTesterMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Mixin Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/product/ERP5/mixin/solver.py b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.py
similarity index 95%
rename from product/ERP5/mixin/solver.py
rename to bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.py
index cf19c5b0001fea913d1ecc2aba413cc69adcdc08..ab24b8eb943131baa7b013786e3a9ffb45cc8282 100644
--- a/product/ERP5/mixin/solver.py
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.py
@@ -30,8 +30,9 @@
 import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
-from Products.ERP5Type import Permissions, interfaces
+from Products.ERP5Type import Permissions
 from Products.ERP5Type.UnrestrictedMethod import super_user
+from erp5.component.interface.ISolver import ISolver
 
 class SolverMixin(object):
   """
@@ -42,7 +43,7 @@ class SolverMixin(object):
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
   # Declarative interfaces
-  zope.interface.implements(interfaces.ISolver,)
+  zope.interface.implements(ISolver,)
 
   def _solve(self, activate_kw=None):
     raise NotImplementedError
diff --git a/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.xml b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7db4e559851fdd0d03a6eb91e8ee0f181760122f
--- /dev/null
+++ b/bt5/erp5_simulation/MixinTemplateItem/portal_components/mixin.erp5.SolverMixin.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Mixin Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>SolverMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.mixin.solver</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>mixin.erp5.SolverMixin</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Mixin Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Delivery_solveDivergenceAutomatically.py b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Delivery_solveDivergenceAutomatically.py
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Delivery_solveDivergenceAutomatically.py
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Delivery_solveDivergenceAutomatically.py
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Delivery_solveDivergenceAutomatically.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Delivery_solveDivergenceAutomatically.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Delivery_solveDivergenceAutomatically.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/Delivery_solveDivergenceAutomatically.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_causality_title.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_causality_title.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_causality_title.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_causality_title.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_comment.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_comment.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_comment.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_comment.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_delivery_title_list.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_delivery_title_list.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_delivery_title_list.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_delivery_title_list.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_description.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_description.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_description.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_description.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_solver.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_solver.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_view/my_solver.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_view/my_solver.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_viewConfiguration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_viewConfiguration.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_viewConfiguration.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_viewConfiguration.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_viewConfiguration/my_configuration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_viewConfiguration/my_configuration.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverDecision_viewConfiguration/my_configuration.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverDecision_viewConfiguration/my_configuration.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox_configuration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox_configuration.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox_configuration.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox_configuration.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox_solver.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox_solver.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/listbox_solver.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/listbox_solver.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/my_title.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/my_title.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/my_title.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/my_title.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/my_translated_validation_state_title.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/my_translated_validation_state_title.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/my_translated_validation_state_title.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/my_translated_validation_state_title.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/solver_listbox.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/solver_listbox.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/solver_listbox.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/solver_listbox.xml
diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/solver_listbox_configuration.xml b/bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/solver_listbox_configuration.xml
similarity index 100%
rename from bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/SolverProcess_view/solver_listbox_configuration.xml
rename to bt5/erp5_simulation/SkinTemplateItem/portal_skins/erp5_simulation/SolverProcess_view/solver_listbox_configuration.xml
diff --git a/product/ERP5/Tool/SolverProcessTool.py b/bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.py
similarity index 94%
rename from product/ERP5/Tool/SolverProcessTool.py
rename to bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.py
index dfdfc688338fc4e723ff0ea0c4a8a7e591ba2bd4..1381588488e51d967ffe55a1bf8bb75413d83d0f 100644
--- a/product/ERP5/Tool/SolverProcessTool.py
+++ b/bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.py
@@ -32,10 +32,8 @@ import zope.interface
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
 from Products.ERP5Type import Permissions, interfaces
-from Products.ERP5Type.Globals import DTMLFile
 from Products.ERP5Type.Tool.BaseTool import BaseTool
 
-from Products.ERP5 import _dtmldir
 from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
 
 class SolverProcessTool(BaseTool):
@@ -52,12 +50,6 @@ class SolverProcessTool(BaseTool):
   # Declarative interfaces
   zope.interface.implements(interfaces.IDivergenceController, )
 
-  #
-  #   ZMI methods
-  #
-  security.declareProtected( Permissions.ManagePortal, 'manage_overview' )
-  manage_overview = DTMLFile( 'explainSolverTool', _dtmldir )
-
   # IDivergenceController implementation
   security.declareProtected(Permissions.AccessContentsInformation,
                             'isDivergent')
diff --git a/bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.xml b/bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.xml
new file mode 100644
index 0000000000000000000000000000000000000000..16c84c08b829e3eed910971872706bb58bc102b6
--- /dev/null
+++ b/bt5/erp5_simulation/ToolComponentTemplateItem/portal_components/tool.erp5.SolverProcessTool.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Tool Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>SolverProcessTool</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5.Tool.SolverProcessTool</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>tool.erp5.SolverProcessTool</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Tool Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_base/ToolTemplateItem/portal_solver_processes.xml b/bt5/erp5_simulation/ToolTemplateItem/portal_solver_processes.xml
similarity index 100%
rename from bt5/erp5_base/ToolTemplateItem/portal_solver_processes.xml
rename to bt5/erp5_simulation/ToolTemplateItem/portal_solver_processes.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions/calculate_causality.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions/calculate_causality.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions/calculate_causality.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/interactions/calculate_causality.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/scripts/Delivery_calculate.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/variables.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/variables.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/variables.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/variables.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/worklists.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/worklists.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/worklists.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_interaction_workflow/worklists.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSolveDivergenceTransition.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_callSplitAndDeferTransition.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_diverge.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_solveDivergence.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Delivery_splitAndDefer.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.py b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.py
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.py
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.py
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/scripts/Workflow_solveDivergenceAutomatically.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/building.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/building.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/building.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/building.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/calculating.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/calculating.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/calculating.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/calculating.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/diverged.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/diverged.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/diverged.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/diverged.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/draft.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/draft.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/draft.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/draft.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solved.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solved.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solved.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solved.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solving.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solving.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solving.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/states/solving.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/calculate.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/calculate.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/calculate.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/calculate.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/converge.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/converge.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/converge.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/converge.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/diverge.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/diverge.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/diverge.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/diverge.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_automatically.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_automatically.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_automatically.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_automatically.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence_action.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence_action.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence_action.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/solve_divergence_action.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer_action.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer_action.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer_action.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/split_and_defer_action.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/start_building.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/start_building.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/start_building.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/transitions/start_building.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/action.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/action.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/action.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/action.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/actor.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/actor.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/actor.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/actor.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/comment.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/comment.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/comment.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/comment.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/error_message.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/error_message.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/error_message.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/error_message.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/history.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/history.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/history.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/history.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/portal_type.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/portal_type.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/portal_type.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/portal_type.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/time.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/time.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/time.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/variables/time.xml
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/worklists.xml b/bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/worklists.xml
similarity index 100%
rename from bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/worklists.xml
rename to bt5/erp5_simulation/WorkflowTemplateItem/portal_workflow/delivery_causality_workflow/worklists.xml
diff --git a/bt5/erp5_simulation/bt/template_document_id_list b/bt5/erp5_simulation/bt/template_document_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..e938e48519006956eb9436318cf2298a5f292072
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_document_id_list
@@ -0,0 +1,20 @@
+document.erp5.AcceptSolver
+document.erp5.AdoptSolver
+document.erp5.CategoryMembershipEquivalenceTester
+document.erp5.DateTimeEquivalenceTester
+document.erp5.FIFODeliverySolver
+document.erp5.FloatEquivalenceTester
+document.erp5.ItemListSplitSolver
+document.erp5.LIFODeliverySolver
+document.erp5.MinimisePriceDeliverySolver
+document.erp5.MovementSplitSolver
+document.erp5.NetConvertedQuantityEquivalenceTester
+document.erp5.QuantitySplitMoveSolver
+document.erp5.QuantitySplitSolver
+document.erp5.SolverDecision
+document.erp5.SolverProcess
+document.erp5.SpecialiseEquivalenceTester
+document.erp5.StringEquivalenceTester
+document.erp5.TradeModelSolver
+document.erp5.UnifySolver
+document.erp5.VariationEquivalenceTester
\ No newline at end of file
diff --git a/bt5/erp5_simulation/bt/template_interface_id_list b/bt5/erp5_simulation/bt/template_interface_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..6a04717a955408b511358e75e0d026d442de2239
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_interface_id_list
@@ -0,0 +1,4 @@
+interface.erp5.IConfigurable
+interface.erp5.IDeliverySolver
+interface.erp5.IEquivalenceTester
+interface.erp5.ISolver
\ No newline at end of file
diff --git a/bt5/erp5_simulation/bt/template_mixin_id_list b/bt5/erp5_simulation/bt/template_mixin_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..d155f9500cd033ece7e47f5164140003e9ac9ca7
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_mixin_id_list
@@ -0,0 +1,4 @@
+mixin.erp5.ConfigurableMixin
+mixin.erp5.ConfigurablePropertySolverMixin
+mixin.erp5.EquivalenceTesterMixin
+mixin.erp5.SolverMixin
\ No newline at end of file
diff --git a/bt5/erp5_simulation/bt/template_tool_component_id_list b/bt5/erp5_simulation/bt/template_tool_component_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..33f15f959face65ca51091b68547530b4fb30c27
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_tool_component_id_list
@@ -0,0 +1 @@
+tool.erp5.SolverProcessTool
\ No newline at end of file
diff --git a/bt5/erp5_simulation/bt/template_tool_id_list b/bt5/erp5_simulation/bt/template_tool_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..da38bcf11befe8b91ed347333f669e99d7d2ffcb
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_tool_id_list
@@ -0,0 +1 @@
+portal_solver_processes
\ No newline at end of file
diff --git a/bt5/erp5_simulation/bt/template_workflow_id_list b/bt5/erp5_simulation/bt/template_workflow_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..337bc4aa138fa3d40651cff3d49b6254cc84fb51
--- /dev/null
+++ b/bt5/erp5_simulation/bt/template_workflow_id_list
@@ -0,0 +1,2 @@
+delivery_causality_interaction_workflow
+delivery_causality_workflow
\ No newline at end of file
diff --git a/bt5/erp5_tiosafe_ubercart_test/TestTemplateItem/testUbercartSynchronisation.py b/bt5/erp5_tiosafe_ubercart_test/TestTemplateItem/testUbercartSynchronisation.py
index 19c29635da1bc093a1200d03cef5e41c933970cb..6618e66da76ae8ee8bc5199c22b74ebcb9dc547c 100644
--- a/bt5/erp5_tiosafe_ubercart_test/TestTemplateItem/testUbercartSynchronisation.py
+++ b/bt5/erp5_tiosafe_ubercart_test/TestTemplateItem/testUbercartSynchronisation.py
@@ -44,8 +44,8 @@ class TestUbercartSynchronization(ERP5TypeTestCase):
         'erp5_base',
 	'erp5_core_proxy_field_legacy',
         'erp5_pdm',
-        'erp5_trade',
         'erp5_simulation',
+        'erp5_trade',
         'erp5_syncml',
         'erp5_tiosafe_core',
         'erp5_tiosafe_test',
diff --git a/bt5/erp5_tiosafe_virtuemart_test/TestTemplateItem/testVirtuemartSynchronization.py b/bt5/erp5_tiosafe_virtuemart_test/TestTemplateItem/testVirtuemartSynchronization.py
index d91a6e2024bd8de1ca3c2219b6ad28b39eccc416..36551b0ef2518817a114bfc7e2cdbd2d2308085a 100644
--- a/bt5/erp5_tiosafe_virtuemart_test/TestTemplateItem/testVirtuemartSynchronization.py
+++ b/bt5/erp5_tiosafe_virtuemart_test/TestTemplateItem/testVirtuemartSynchronization.py
@@ -42,8 +42,8 @@ class TestVirtuemartSynchronization(ERP5TypeTestCase):
     return (
         'erp5_base',
         'erp5_pdm',
-        'erp5_trade',
         'erp5_simulation',
+        'erp5_trade',
         'erp5_syncml',
         'erp5_tiosafe_core',
         'erp5_tiosafe_test',
diff --git a/product/CMFCategory/tests/testCMFCategory.py b/product/CMFCategory/tests/testCMFCategory.py
index 6e1f52f19a841ce37ec20b4beb9809467fdefe6f..5cbd81506cbb92dc61a5ecf79aa5616e246fd8a9 100644
--- a/product/CMFCategory/tests/testCMFCategory.py
+++ b/product/CMFCategory/tests/testCMFCategory.py
@@ -86,7 +86,7 @@ class TestCMFCategory(ERP5TypeTestCase):
 
       /organisation
     """
-    return ('erp5_base', 'erp5_pdm', 'erp5_trade')
+    return ('erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade')
 
   def getCategoriesTool(self):
     return getattr(self.portal, 'portal_categories', None)
diff --git a/product/ERP5/Document/SolverTypeInformation.py b/product/ERP5/Document/SolverTypeInformation.py
index 7791d6bcdb1cd889da421ef05fc885aecc132fb4..4c02cc1448256e8b903007fa0ad2da594548287c 100644
--- a/product/ERP5/Document/SolverTypeInformation.py
+++ b/product/ERP5/Document/SolverTypeInformation.py
@@ -205,6 +205,7 @@ class SolverTypeInformation(Predicate, ERP5TypeInformation):
   def _callMethod(self, configurable, method_id, default=None):
     # Implemented through type based method
     # and using read transaction cache
+    from erp5.component.interface.ISolver import ISolver
     portal_type = configurable.getPortalType()
     if portal_type == 'Solver Decision':
       try:
@@ -216,7 +217,7 @@ class SolverTypeInformation(Predicate, ERP5TypeInformation):
           causality_value=configurable)
       except AttributeError:
         return default
-    elif interfaces.ISolver.providedBy(configurable):
+    elif ISolver.providedBy(configurable):
       solver_portal_type = portal_type
       solver = configurable
     else:
diff --git a/product/ERP5/__init__.py b/product/ERP5/__init__.py
index 8ec3654adfb342255553b64a7ad6dece25f020fd..3c04e815c70f9752aaafe508c8d1441092659329 100644
--- a/product/ERP5/__init__.py
+++ b/product/ERP5/__init__.py
@@ -49,7 +49,7 @@ from Tool import CategoryTool, SimulationTool, RuleTool, IdTool, TemplateTool,\
                  TestTool, DomainTool, AlarmTool, OrderTool, DeliveryTool,\
                  TrashTool, ContributionTool, NotificationTool, PasswordTool,\
                  GadgetTool, ContributionRegistryTool, IntrospectionTool,\
-                 AcknowledgementTool, SolverTool, SolverProcessTool,\
+                 AcknowledgementTool, SolverTool,\
                  UrlRegistryTool, InterfaceTool,\
                  CertificateAuthorityTool, InotifyTool, TaskDistributionTool
 import ERP5Site
@@ -77,7 +77,6 @@ portal_tools = ( CategoryTool.CategoryTool,
                  IntrospectionTool.IntrospectionTool,
                  AcknowledgementTool.AcknowledgementTool,
                  SolverTool.SolverTool,
-                 SolverProcessTool.SolverProcessTool,
                  UrlRegistryTool.UrlRegistryTool,
                  CertificateAuthorityTool.CertificateAuthorityTool,
                  InotifyTool.InotifyTool,
diff --git a/product/ERP5/dtml/explainSolverTool.dtml b/product/ERP5/dtml/explainSolverTool.dtml
deleted file mode 100644
index 17589189c8b734027eb9f4ef9075d4f971ae587d..0000000000000000000000000000000000000000
--- a/product/ERP5/dtml/explainSolverTool.dtml
+++ /dev/null
@@ -1,8 +0,0 @@
-<dtml-var manage_page_header>
-<dtml-var manage_tabs>
-
-<p>SolverTool is a store of solver processes which
-are used to solve divergences in deliveries and 
-to optimise deliveries.</p>
-
-<dtml-var manage_page_footer>
diff --git a/product/ERP5/tests/testAdvancedInvoicing.py b/product/ERP5/tests/testAdvancedInvoicing.py
index a022a81c805b216fb28a281cdf9d19a6255a2c60..7fb54c289ef645cfd8d627a704657bc72606ea4f 100644
--- a/product/ERP5/tests/testAdvancedInvoicing.py
+++ b/product/ERP5/tests/testAdvancedInvoicing.py
@@ -1135,7 +1135,7 @@ class TestAdvancedPurchaseInvoice(TestAdvancedInvoice):
 class TestWorkflow(SecurityTestCase):
   def getBusinessTemplateList(self):
     return ('erp5_core', 'erp5_base', 'erp5_pdm',
-            'erp5_trade', 'erp5_accounting',
+            'erp5_simulation', 'erp5_trade', 'erp5_accounting',
             'erp5_invoicing', 'erp5_advanced_invoicing')
 
   def afterSetUp(self):
diff --git a/product/ERP5/tests/testAmount.py b/product/ERP5/tests/testAmount.py
index 0cbef71495b3152dad42297ac6bc47fbe81b5f54..c6b11a22bd5ba5c04f219651b1e4e13173d4ed84 100644
--- a/product/ERP5/tests/testAmount.py
+++ b/product/ERP5/tests/testAmount.py
@@ -57,7 +57,7 @@ class TestAmount(ERP5TypeTestCase):
   def getBusinessTemplateList(self):
     """
     """
-    return ('erp5_base', 'erp5_pdm', 'erp5_trade', 'erp5_apparel')
+    return ('erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade', 'erp5_apparel')
 
   def login(self, quiet=0, run=run_all_test):
     uf = self.getPortal().acl_users
diff --git a/product/ERP5/tests/testBug.py b/product/ERP5/tests/testBug.py
index 61d5c06395a7a70571f75396845a2cae21d3dac3..58be9566a6095c329a74864d35ef03f40b30e07b 100644
--- a/product/ERP5/tests/testBug.py
+++ b/product/ERP5/tests/testBug.py
@@ -65,6 +65,7 @@ class TestBug(ERP5TypeTestCase):
            , 'erp5_crm'
            , 'erp5_forge'
            , 'erp5_pdm'
+           , 'erp5_simulation'
            , 'erp5_trade'
            , 'erp5_project'
            )
diff --git a/product/ERP5/tests/testDivergenceTester.py b/product/ERP5/tests/testDivergenceTester.py
index e043fca51330b3464ee750a44c6175e5bf1e381d..c771b166e1336f8928e08669c731448daea1d3f1 100644
--- a/product/ERP5/tests/testDivergenceTester.py
+++ b/product/ERP5/tests/testDivergenceTester.py
@@ -31,7 +31,6 @@ from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Type.tests.Sequence import Sequence
 from Products.ERP5.tests.testPackingList import TestPackingListMixin
 from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
-from Products.ERP5.Document.FloatEquivalenceTester import DEFAULT_PRECISION
 
 class TestDivergenceTester(TestPackingListMixin, ERP5TypeTestCase):
   """
@@ -355,6 +354,7 @@ class TestDivergenceTester(TestPackingListMixin, ERP5TypeTestCase):
      Check Float Divergence tester behavior, especially around the
      default range = epsilon = abs(prevision_value * DEFAULT_PRECISION)
     """
+    from erp5.component.document.FloatEquivalenceTester import DEFAULT_PRECISION
     divergence_tester = sequence['price_divergence_tester']
 
     decision = sequence['order_line']
@@ -458,6 +458,7 @@ class TestDivergenceTester(TestPackingListMixin, ERP5TypeTestCase):
     movement = sequence.get('movement')
     prevision = simulation_movement.getPrice()
     self.assertEqual(prevision, 555.0)
+    from erp5.component.document.FloatEquivalenceTester import DEFAULT_PRECISION
     self.assertEqual(DEFAULT_PRECISION, 1e-12)
     # Since the epsilon here is, epsilon = 555.0 * 1e-12.
     # The following difference is smaller than the epsilon,
diff --git a/product/ERP5/tests/testDomainTool.py b/product/ERP5/tests/testDomainTool.py
index cc9ec24dbdc77c37f398ef247202ab3fff8ce48c..b3395e84d0b2c2d428f8c1d47f83563a292d971f 100644
--- a/product/ERP5/tests/testDomainTool.py
+++ b/product/ERP5/tests/testDomainTool.py
@@ -52,7 +52,7 @@ class TestDomainTool(TestPredicateMixIn):
       Return the list of business templates.
 
     """
-    return ('erp5_base','erp5_pdm', 'erp5_trade', 'erp5_apparel')
+    return ('erp5_base','erp5_pdm', 'erp5_simulation', 'erp5_trade', 'erp5_apparel')
 
   def afterSetUp(self):
     domain_tool = self.getDomainTool()
diff --git a/product/ERP5/tests/testERP5Web.py b/product/ERP5/tests/testERP5Web.py
index 746e9c73fa3fb8728f0443fd18eab6549ad33db1..b01427a0ab636eb379b2b2cef0fff7acb95a918c 100644
--- a/product/ERP5/tests/testERP5Web.py
+++ b/product/ERP5/tests/testERP5Web.py
@@ -1592,6 +1592,7 @@ class TestERP5WebWithSimpleSecurity(ERP5TypeTestCase):
   def getBusinessTemplateList(self):
     return ('erp5_base',
             'erp5_pdm',
+            'erp5_simulation',
             'erp5_trade',
             'erp5_project',
             'erp5_web',
diff --git a/product/ERP5/tests/testFunctionalRunMyDocSample.py b/product/ERP5/tests/testFunctionalRunMyDocSample.py
index 84831c2fa0fe5cd996022d846bd3c8c2b04bebd5..48d6fd9c41748f8ef23f84bd502336e926876f84 100644
--- a/product/ERP5/tests/testFunctionalRunMyDocSample.py
+++ b/product/ERP5/tests/testFunctionalRunMyDocSample.py
@@ -58,7 +58,7 @@ class TestZeleniumRunMyDocSample(ERP5TypeFunctionalTestCase):
     """
     return ('erp5_core_proxy_field_legacy', 'erp5_full_text_mroonga_catalog',
             'erp5_base', 'erp5_ui_test_core','erp5_web', 'erp5_ingestion',
-            'erp5_accounting',
+            'erp5_simulation', 'erp5_accounting',
             'erp5_jquery', 'erp5_dms', 'erp5_jquery_ui', 'erp5_web',
             'erp5_slideshow_style', 'erp5_knowledge_pad', 'erp5_run_my_doc',
             'erp5_user_tutorial_ui_test', 'erp5_user_tutorial',)
diff --git a/product/ERP5/tests/testICal.py b/product/ERP5/tests/testICal.py
index d8d78966fd048e131096642fa08e414aa8267953..3a99b1a05aafc72d5c43d971abf4f0c6b22f4e27 100644
--- a/product/ERP5/tests/testICal.py
+++ b/product/ERP5/tests/testICal.py
@@ -42,7 +42,7 @@ class TestICal(ERP5TypeTestCase):
 
   def getBusinessTemplateList(self):
     """  """
-    return ('erp5_base', 'erp5_pdm', 'erp5_trade', 'erp5_project', 'erp5_crm',
+    return ('erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade', 'erp5_project', 'erp5_crm',
             'erp5_ical_style')
 
   def afterSetUp(self):
diff --git a/product/ERP5/tests/testMilestoneReporting.py b/product/ERP5/tests/testMilestoneReporting.py
index 54da27334aa56d7117d1ec43f14f7b9eec85ff2b..e7cdae77d729326e85a2a00e4242c969cbb74f53 100644
--- a/product/ERP5/tests/testMilestoneReporting.py
+++ b/product/ERP5/tests/testMilestoneReporting.py
@@ -32,7 +32,7 @@ from DateTime import DateTime
 
 class MilestoneReportingMixin:
 
-  business_template_list = ('erp5_base','erp5_pdm', 'erp5_trade', 'erp5_project',
+  business_template_list = ('erp5_base','erp5_pdm', 'erp5_simulation', 'erp5_trade', 'erp5_project',
     # XXX This report have to be updated not to use movement table
     "erp5_movement_table_catalog",
   )
diff --git a/product/ERP5/tests/testRoundingTool.py b/product/ERP5/tests/testRoundingTool.py
index d0db5b9b3f7b7f627daf78a0ba768fc7c5fa4351..dba10252e3bf4f3edfe5da5605d5b08775ba08dd 100644
--- a/product/ERP5/tests/testRoundingTool.py
+++ b/product/ERP5/tests/testRoundingTool.py
@@ -40,6 +40,7 @@ class TestRoundingTool(ERP5TypeTestCase):
   def getBusinessTemplateList(self):
     return ('erp5_base',
             'erp5_pdm',
+            'erp5_simulation',
             'erp5_trade',
             )
 
diff --git a/product/ERP5/tests/testSupply.py b/product/ERP5/tests/testSupply.py
index 8451afb41b322b085a25d9c43ffec0bf2bacc8b3..6ffa071bef1233c814facbc5f9e11a95ed4890f0 100644
--- a/product/ERP5/tests/testSupply.py
+++ b/product/ERP5/tests/testSupply.py
@@ -40,7 +40,7 @@ class TestSupplyMixin:
     """
       List of needed Business Templates
     """
-    return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_trade')
+    return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_simulation', 'erp5_trade')
 
   def afterSetUp(self):
     self.login()
diff --git a/product/ERP5/tests/testTradeReports.py b/product/ERP5/tests/testTradeReports.py
index d995465d4d9a1ccbca04e837f48d9454dc540e4c..76568c6acbf14f522b4a12cb056b4ffac09f90e0 100644
--- a/product/ERP5/tests/testTradeReports.py
+++ b/product/ERP5/tests/testTradeReports.py
@@ -43,7 +43,7 @@ class TestTradeReports(ERP5ReportTestCase):
   def getBusinessTemplateList(self):
     """Returns list of BT to be installed."""
     return ('erp5_core_proxy_field_legacy',
-            'erp5_base', 'erp5_pdm', 'erp5_trade', 'erp5_simulation',
+            'erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade',
             'erp5_simulation_test', 'erp5_configurator_standard_trade_template', )
 
   def login(self):
diff --git a/product/ERP5Type/tests/testERP5Type.py b/product/ERP5Type/tests/testERP5Type.py
index 5a25527190aca45ceb228ed61b1e2ea95198ac74..a55a81b5e2782c5d95722dbe7e1765df0ae3ebb3 100644
--- a/product/ERP5Type/tests/testERP5Type.py
+++ b/product/ERP5Type/tests/testERP5Type.py
@@ -124,7 +124,9 @@ class TestERP5Type(PropertySheetTestCase, LogInterceptor):
       """
         Return the list of business templates.
       """
-      return ('erp5_base',)
+      return ('erp5_base',
+              # delivery_causality_workflow
+              'erp5_simulation')
 
     def afterSetUp(self):
       self.login()
diff --git a/product/ERP5Type/tests/testFunctionalKM.py b/product/ERP5Type/tests/testFunctionalKM.py
index 7c7a17bd91a1077c158f517b39bc239c5503d73f..c616f32d6feb0ac636a57c6c0976888eb8ee03be 100644
--- a/product/ERP5Type/tests/testFunctionalKM.py
+++ b/product/ERP5Type/tests/testFunctionalKM.py
@@ -48,7 +48,7 @@ class TestZeleniumKM(ERP5TypeFunctionalTestCase):
                 'erp5_dhtml_style', 'erp5_dhtml_ui_test',
                 'erp5_jquery', 'erp5_jquery_ui',
                 'erp5_knowledge_pad', 'erp5_pdm',
-                'erp5_trade', 'erp5_ooo_import',
+                'erp5_simulation', 'erp5_trade', 'erp5_ooo_import',
                 'erp5_accounting', 'erp5_invoicing',
                 'erp5_simplified_invoicing', 'erp5_project',
                 'erp5_simulation', 'erp5_simulation_test',
diff --git a/product/ERP5Type/tests/testFunctionalStandaloneUserTutorial.py b/product/ERP5Type/tests/testFunctionalStandaloneUserTutorial.py
index 58867c0a441823e2d9550e5037e7eb498d59ec78..f727aa47ad4321a1a67337953a0e116b31dc1dec 100644
--- a/product/ERP5Type/tests/testFunctionalStandaloneUserTutorial.py
+++ b/product/ERP5Type/tests/testFunctionalStandaloneUserTutorial.py
@@ -53,7 +53,7 @@ class TestZeleniumStandaloneUserTutorial(ERP5TypeFunctionalTestCase):
             'erp5_dhtml_style',
             'erp5_jquery', 'erp5_jquery_ui',
             'erp5_knowledge_pad', 'erp5_pdm',
-            'erp5_trade', 'erp5_ooo_import',
+            'erp5_simulation', 'erp5_trade', 'erp5_ooo_import',
             'erp5_accounting', 'erp5_invoicing',
             'erp5_simplified_invoicing', 'erp5_project',
             'erp5_simulation',
diff --git a/product/ERP5Type/tests/testTypeDefinition.py b/product/ERP5Type/tests/testTypeDefinition.py
index 71b7104088de01c19e8a21118b5402ae473a44db..7970a84463663e77d6f19154e7536fcacc331b41 100644
--- a/product/ERP5Type/tests/testTypeDefinition.py
+++ b/product/ERP5Type/tests/testTypeDefinition.py
@@ -32,7 +32,7 @@ class PortalTypeOfPortalTypeTestCase(ERP5TypeTestCase):
   Base class to test Portal Types of other Portal Types
   """
   def getBusinessTemplateList(self):
-    return ('erp5_core', 'erp5_base', 'erp5_accounting')
+    return ('erp5_core', 'erp5_base', 'erp5_simulation', 'erp5_accounting')
 
   def setUpPropertyOnPortalType(self, portal_type_id, property_name, property_value):
     portal_type = self.portal.portal_types.get(portal_type_id, None)
diff --git a/product/ERP5Type/tests/testXMLMatrix.py b/product/ERP5Type/tests/testXMLMatrix.py
index 184a8988c0119f95600440089b372bb014de4235..1396f3070cd88a5eea56414ab00f7cda93b84372 100644
--- a/product/ERP5Type/tests/testXMLMatrix.py
+++ b/product/ERP5Type/tests/testXMLMatrix.py
@@ -45,7 +45,7 @@ class TestXMLMatrix(ERP5TypeTestCase, LogInterceptor):
     """
     Return the list of business templates.
     """
-    return ('erp5_base', 'erp5_pdm', 'erp5_trade',)
+    return ('erp5_base', 'erp5_pdm', 'erp5_simulation', 'erp5_trade',)
 
   def getTitle(self):
     """