diff --git a/force_bdss/cli/__init__.py b/force_bdss/cli/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/force_bdss/cli/force_bdss.py b/force_bdss/cli/force_bdss.py
index 79a792030b580e77cfdf12d01946fe78908bd678..c4a26d123dd76722fb572cded61a63171675de91 100644
--- a/force_bdss/cli/force_bdss.py
+++ b/force_bdss/cli/force_bdss.py
@@ -1,12 +1,10 @@
 import click
+from stevedore import extension
+from stevedore.exception import NoMatches
 from envisage.core_plugin import CorePlugin
 
 from force_bdss.bdss_application import BDSSApplication
 from force_bdss.core_mco_driver import CoreMCODriver
-from force_bdss.data_sources.data_sources_plugin import \
-    DataSourcesPlugin
-from force_bdss.mco.multi_criteria_optimizers_plugin import \
-    MultiCriteriaOptimizersPlugin
 
 
 @click.command()
@@ -17,10 +15,22 @@ def run(evaluate, workflow_filepath):
     plugins = [
         CorePlugin(),
         CoreMCODriver(),
-        DataSourcesPlugin(),
-        MultiCriteriaOptimizersPlugin(),
     ]
 
+    mgr = extension.ExtensionManager(
+        namespace='force.bdss.extensions',
+        invoke_on_load=True
+    )
+
+    def import_extensions(ext):
+        print("Found extension {}".format(ext.name))
+        plugins.append(ext.obj)
+
+    try:
+        mgr.map(import_extensions)
+    except NoMatches:
+        print("No extensions found")
+
     application = BDSSApplication(
         plugins=plugins,
         evaluate=evaluate,
diff --git a/force_bdss/workspecs/__init__.py b/force_bdss/workspecs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/setup.py b/setup.py
index c544f177233e07b060f03ec9bd59f0a2a8ac88dc..2087e062ab152e56627f63424ca6fc32a25f0028 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-from setuptools import setup
+from setuptools import setup, find_packages
 
 VERSION = "0.1.0.dev0"
 
@@ -8,9 +8,18 @@ setup(
     entry_points={
         'console_scripts': [
             'force_bdss = force_bdss.cli.force_bdss:run',
-        ]},
+        ],
+        "force.bdss.extensions": [
+            "mco = force_bdss.mco.multi_criteria_optimizers_plugin:"
+                   "MultiCriteriaOptimizersPlugin",
+            "data_source = force_bdss.data_sources.data_sources_plugin:"
+            "DataSourcesPlugin",
+        ]
+    },
+    packages=find_packages(),
     install_requires=[
         "envisage >= 4.6.0",
-        "click >= 6.7"
+        "click >= 6.7",
+        "stevedore >= 1.24.0"
     ]
 )