diff --git a/force_bdss/base_core_driver.py b/force_bdss/base_core_driver.py
index 72c09b37df9071db7949fc8335c174431d748984..6b43b4cec5a09370f51edab719cf9e0cd5254f0d 100644
--- a/force_bdss/base_core_driver.py
+++ b/force_bdss/base_core_driver.py
@@ -32,11 +32,12 @@ class BaseCoreDriver(Plugin):
     def _parameter_factory_registry_default(self):
         registry = MCOParameterFactoryRegistry()
         for f in all_core_factories():
-            self.register(f)
+            registry.register(f)
 
         return registry
 
     def _workflow_default(self):
-        reader = WorkflowReader(self.bundle_registry)
+        reader = WorkflowReader(self.bundle_registry,
+                                self.parameter_factory_registry)
         with open(self.application.workflow_filepath) as f:
             return reader.read(f)
diff --git a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
index 7bb6ba43186151cee28f697d39e2ef8655e00ab5..a17b59d97dd3e71bbda4c874568b0208eedcf7f7 100644
--- a/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
+++ b/force_bdss/core_plugins/dummy/dummy_dakota/tests/test_dakota_communicator.py
@@ -35,4 +35,3 @@ class TestDakotaCommunicator(unittest.TestCase):
             self.assertEqual(len(data.value_names), 1)
             self.assertEqual(len(data.value_types), 1)
             self.assertEqual(len(data.values), 1)
-
diff --git a/force_bdss/io/workflow_writer.py b/force_bdss/io/workflow_writer.py
index cbc9a7b8277a2925d2a8788813802e52af30548b..b757d039c7346b4a48db2371b84b018255ec6420 100644
--- a/force_bdss/io/workflow_writer.py
+++ b/force_bdss/io/workflow_writer.py
@@ -39,7 +39,6 @@ class WorkflowWriter(HasStrictTraits):
 
         wf_data["multi_criteria_optimizer"]["model_data"]["parameters"] = parameters_data  # noqa
 
-
         kpic_data = []
         for kpic in workflow.kpi_calculators:
             kpic_data.append({
diff --git a/force_bdss/mco/parameters/core_mco_parameters.py b/force_bdss/mco/parameters/core_mco_parameters.py
index 072d0a2a072086bce78232a88aee192e6f0025ad..35e46232380252818ed2878b0f78cb8aba5af414 100644
--- a/force_bdss/mco/parameters/core_mco_parameters.py
+++ b/force_bdss/mco/parameters/core_mco_parameters.py
@@ -26,5 +26,7 @@ def all_core_factories():
     """Produces a list of all factories contained in this module."""
     import inspect
 
-    return [c for c in inspect.getmodule(all_core_factories).__dict__.values()
-            if inspect.isclass(c) and issubclass(c, BaseMCOParameterFactory)]
+    return [c() for c in inspect.getmodule(all_core_factories).__dict__.values()
+            if inspect.isclass(c) and
+            c is not BaseMCOParameterFactory and
+            issubclass(c, BaseMCOParameterFactory)]
diff --git a/force_bdss/mco/parameters/tests/test_core_mco_parameters.py b/force_bdss/mco/parameters/tests/test_core_mco_parameters.py
index feec858f0680403d83baffd28918542cc92ae67b..af6f4c96ab0b6536e44fd2d5465a7dd3934eb396 100644
--- a/force_bdss/mco/parameters/tests/test_core_mco_parameters.py
+++ b/force_bdss/mco/parameters/tests/test_core_mco_parameters.py
@@ -6,9 +6,9 @@ from force_bdss.mco.parameters.base_mco_parameter_factory import \
 
 
 class TestCoreMCOParameters(unittest.TestCase):
-    def test_all_classes(self):
+    def test_all_factories(self):
         factories = core_mco_parameters.all_core_factories()
-        self.assertNotEqual(len(factories), 0)
+        self.assertEqual(len(factories), 1)
 
         for f in factories:
-            self.assertTrue(issubclass(f, BaseMCOParameterFactory))
+            self.assertIsInstance(f, BaseMCOParameterFactory)
diff --git a/force_bdss/tests/fixtures/test_csv.json b/force_bdss/tests/fixtures/test_csv.json
index f061c1092201a1cb409595a1d002ea3a85d57166..85fb4fb8dcf7dd7b7d858e61c7f9b1d2173a1147 100644
--- a/force_bdss/tests/fixtures/test_csv.json
+++ b/force_bdss/tests/fixtures/test_csv.json
@@ -2,13 +2,14 @@
   "version": "1",
   "workflow": {
     "multi_criteria_optimizer": {
-      "id": "force.bdss.bundles.enthought.dakota",
+      "id": "force.bdss.bundle.enthought.dakota",
       "model_data": {
+        "parameters" : []
       }
     },
     "data_sources": [
       {
-        "id": "force.bdss.bundles.enthought.csv_extractor",
+        "id": "force.bdss.bundle.enthought.csv_extractor",
         "model_data": {
           "filename": "foo.csv",
           "row": 3,
@@ -17,7 +18,7 @@
         }
       },
       {
-        "id": "force.bdss.bundles.enthought.csv_extractor",
+        "id": "force.bdss.bundle.enthought.csv_extractor",
         "model_data": {
           "filename": "foo.csv",
           "row": 3,
@@ -28,7 +29,7 @@
     ],
     "kpi_calculators": [
       {
-        "id": "force.bdss.bundles.enthought.kpi_adder",
+        "id": "force.bdss.bundle.enthought.kpi_adder",
         "model_data": {
           "cuba_type_in": "PRESSURE",
           "cuba_type_out": "TOTAL_PRESSURE"