diff --git a/force_bdss/mco/parameters/base_mco_parameter_factory.py b/force_bdss/mco/parameters/base_mco_parameter_factory.py
new file mode 100644
index 0000000000000000000000000000000000000000..57f16ecd5bbd3333f93fb2718e60b52ee16a1419
--- /dev/null
+++ b/force_bdss/mco/parameters/base_mco_parameter_factory.py
@@ -0,0 +1,15 @@
+from traits.has_traits import HasStrictTraits
+from traits.trait_types import String, Type
+
+
+class BaseMCOParameterFactory(HasStrictTraits):
+    id = String()
+    name = String("Undefined parameter")
+    description = String("Undefined parameter")
+    model_class = Type('BaseMCOParameter')
+
+    def create_model(self, data_values=None):
+        if data_values is None:
+            data_values = {}
+
+        return self.model_class(factory=self, **data_values)
diff --git a/force_bdss/mco/parameters/i_mco_parameter_factory.py b/force_bdss/mco/parameters/i_mco_parameter_factory.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/force_bdss/mco/parameters/parameter_factory_registry.py b/force_bdss/mco/parameters/parameter_factory_registry.py
index 915cd0cc8144e764bf9209c0cf1f26f492589028..8bd180ed870515a92742ebee65f70f33f404be76 100644
--- a/force_bdss/mco/parameters/parameter_factory_registry.py
+++ b/force_bdss/mco/parameters/parameter_factory_registry.py
@@ -1,11 +1,21 @@
-from traits.api import HasStrictTraits, Dict
+from traits.api import HasStrictTraits, Dict, String
+
+from force_bdss.mco.parameters.base_mco_parameter_factory import \
+    BaseMCOParameterFactory
 
 
 class ParameterFactoryRegistry(HasStrictTraits):
-    factories = Dict()
+    """Registry to keep the parameter factories and lookup them.
+    """
+    # Temp: this will become an extension point.
+    factories = Dict(String, BaseMCOParameterFactory)
 
     def get_factory_by_id(self, id):
+        """Finds the factory by its id, so that we can obtain it as from
+        the id in the model file.
+        """
         return self.factories[id]
 
     def register(self, factory):
+        """Registers a new factory"""
         self.factories[factory.id] = factory
diff --git a/force_bdss/mco/parameters/tests/test_parameter_factory_registry.py b/force_bdss/mco/parameters/tests/test_parameter_factory_registry.py
new file mode 100644
index 0000000000000000000000000000000000000000..39aca6b0ff9bdd379368c3de15d15f961ced0274
--- /dev/null
+++ b/force_bdss/mco/parameters/tests/test_parameter_factory_registry.py
@@ -0,0 +1,10 @@
+import unittest
+
+from force_bdss.mco.parameters.parameter_factory_registry import \
+    ParameterFactoryRegistry
+
+
+class TestParameterFactoryRegistry(unittest.TestCase):
+    def test_registry_init(self):
+        reg = ParameterFactoryRegistry()
+        self.assertEqual(reg.factories, {})