diff --git a/force_bdss/data_sources/i_data_source_factory.py b/force_bdss/data_sources/i_data_source_factory.py
index 9af71bf4c17e7d3cf3c1cc9ecb6d80a70a74dd44..bbeb624bbff2d50a83ebb2a6aca64588afa2fa0e 100644
--- a/force_bdss/data_sources/i_data_source_factory.py
+++ b/force_bdss/data_sources/i_data_source_factory.py
@@ -1,5 +1,5 @@
 from envisage.api import Plugin
-from traits.api import Interface, String, Instance, Type
+from traits.api import Interface, Str, Instance, Type
 
 
 class IDataSourceFactory(Interface):
@@ -8,22 +8,30 @@ class IDataSourceFactory(Interface):
 
     Refer to the BaseDataSourceFactory for documentation.
     """
-    id = String()
+    id = Str()
 
-    name = String()
+    name = Str()
 
     data_source_class = Type(
-        "force_bdss.data_sources.base_data_source.BaseDataSource"
+        "force_bdss.data_sources.base_data_source.BaseDataSource",
+        allow_none=False
     )
 
     model_class = Type(
-        "force_bdss.data_sources.base_data_source_model.BaseDataSourceModel"
+        "force_bdss.data_sources.base_data_source_model.BaseDataSourceModel",
+        allow_none=False
     )
 
-    plugin = Instance(Plugin)
+    plugin = Instance(Plugin, allow_none=False)
 
-    def create_data_source(self):
-        """"""
+    def get_data_source_class(self):
+        pass
 
-    def create_model(self, model_data=None):
-        """"""
+    def get_model_class(self):
+        pass
+
+    def get_name(self):
+        pass
+
+    def get_identifier(self):
+        pass
diff --git a/force_bdss/mco/i_mco_factory.py b/force_bdss/mco/i_mco_factory.py
index bc58e150723a6447f3c78f115199db02497786c3..97910175fcdece2ded473bea73e9cb5d9c40b0c3 100644
--- a/force_bdss/mco/i_mco_factory.py
+++ b/force_bdss/mco/i_mco_factory.py
@@ -1,4 +1,4 @@
-from traits.api import Interface, String, Instance, Type
+from traits.api import Interface, Str, Instance, Type
 from envisage.plugin import Plugin
 
 
@@ -8,29 +8,51 @@ class IMCOFactory(Interface):
 
     Refer to BaseMCOFactory for documentation
     """
-    id = String()
+    id = Str()
 
-    name = String()
+    name = Str()
 
     optimizer_class = Type(
-        "force_bdss.mco.base_mco.BaseMCO"
+        "force_bdss.mco.base_mco.BaseMCO",
+        allow_none=False
     )
 
     model_class = Type(
-        "force_bdss.mco.base_mco_communicator.BaseMCOCommunicator"
+        "force_bdss.mco.base_mco_communicator.BaseMCOCommunicator",
+        allow_none=False
+
     )
 
     communicator_class = Type(
-        "force_bdss.mco.base_mco_model.BaseMCOModel"
+        "force_bdss.mco.base_mco_model.BaseMCOModel",
+        allow_none=False
     )
 
-    plugin = Instance(Plugin)
+    plugin = Instance(Plugin, allow_none=False)
+
+    def get_model_class(self):
+        pass
+
+    def get_communicator_class(self):
+        pass
+
+    def get_optimizer_class(self):
+        pass
+
+    def get_identifier(self):
+        pass
+
+    def get_name(self):
+        pass
 
     def create_optimizer(self):
-        """"""
+        pass
 
-    def create_model(self, model_data=None):
-        """"""
+    def create_model(self):
+        pass
 
     def create_communicator(self):
-        """"""
+        pass
+
+    def parameter_factories(self):
+        pass
diff --git a/force_bdss/notification_listeners/i_notification_listener_factory.py b/force_bdss/notification_listeners/i_notification_listener_factory.py
index c1cc05abac59e0755723507c98dd6b5d76195206..34746855cc191c0c65b8e8ea5aa5c8a7cdd7bfb7 100644
--- a/force_bdss/notification_listeners/i_notification_listener_factory.py
+++ b/force_bdss/notification_listeners/i_notification_listener_factory.py
@@ -16,18 +16,32 @@ class INotificationListenerFactory(Interface):
 
     listener_class = Type(
         "force_bdss.notification_listeners"
-        ".base_notification_listener.BaseNotificationListener"
+        ".base_notification_listener.BaseNotificationListener",
+        allow_none=False,
     )
 
     model_class = Type(
         "force_bdss.notification_listeners"
-        ".base_notification_listener_model.BaseNotificationListenerModel"
+        ".base_notification_listener_model.BaseNotificationListenerModel",
+        allow_none=False
     )
 
-    plugin = Instance(Plugin)
+    plugin = Instance(Plugin, allow_none=False)
+
+    def get_name(self):
+        pass
+
+    def get_identifier(self):
+        pass
+
+    def get_model_class(self):
+        pass
+
+    def get_listener_class(self):
+        pass
 
     def create_listener(self):
-        """"""
+        pass
 
-    def create_model(self, model_data=None):
-        """"""
+    def create_model(self):
+        pass
diff --git a/force_bdss/ui_hooks/i_ui_hooks_factory.py b/force_bdss/ui_hooks/i_ui_hooks_factory.py
index f702a96071b017c4e6f173a178295b3d8867b447..c809f3aa0d1d4b87bd809d144bfe0cb143d3cd23 100644
--- a/force_bdss/ui_hooks/i_ui_hooks_factory.py
+++ b/force_bdss/ui_hooks/i_ui_hooks_factory.py
@@ -1,4 +1,4 @@
-from traits.api import Interface, String, Instance, Type
+from traits.api import Interface, Str, Instance, Type
 from envisage.plugin import Plugin
 
 
@@ -8,15 +8,26 @@ class IUIHooksFactory(Interface):
 
     Refer to the BaseUIHooksFactory for documentation.
     """
-    id = String()
+    id = Str()
 
-    name = String()
+    name = Str()
 
     ui_hooks_manager_class = Type(
-        "force_bdss.ui_hooks.base_ui_hooks_manager.BaseUIHooksManager"
+        "force_bdss.ui_hooks.base_ui_hooks_manager.BaseUIHooksManager",
+        allow_none=False
+
     )
 
-    plugin = Instance(Plugin)
+    plugin = Instance(Plugin, allow_none=False)
+
+    def get_ui_hooks_manager_class(self):
+        pass
+
+    def get_name(self):
+        pass
+
+    def get_identifier(self):
+        pass
 
-    def create_hook_manager(self):
-        """"""
+    def create_ui_hooks_manager(self):
+        pass