diff --git a/force_bdss/core_evaluation_driver.py b/force_bdss/core_evaluation_driver.py
index ebe24cf6bf9702bb5f1c0eb28b11c303222b5a4a..465e34a2657c2d89b4f0e17e54654f16ec0aba9a 100644
--- a/force_bdss/core_evaluation_driver.py
+++ b/force_bdss/core_evaluation_driver.py
@@ -32,15 +32,13 @@ class CoreEvaluationDriver(BaseCoreDriver):
         ds_results = []
         for ds_model in workflow.data_sources:
             ds_bundle = ds_model.bundle
-            data_source = ds_bundle.create_data_source(self.application,
-                                                       ds_model)
-            ds_results.append(data_source.run(parameters))
+            data_source = ds_bundle.create_data_source()
+            ds_results.append(data_source.run(ds_model, parameters))
 
         kpi_results = []
         for kpic_model in workflow.kpi_calculators:
             kpic_bundle = kpic_model.bundle
-            kpi_calculator = kpic_bundle.create_kpi_calculator(
-                self.application, kpic_model)
-            kpi_results.append(kpi_calculator.run(ds_results))
+            kpi_calculator = kpic_bundle.create_kpi_calculator()
+            kpi_results.append(kpi_calculator.run(kpic_model, ds_results))
 
         mco_communicator.send_to_mco(mco_model, kpi_results)
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_bundle.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_bundle.py
index 55f998c49c4bfef7dfb37f93f61f3c435f00f518..30dedeeb0dbd7a72f2c09a47bee76759a4205e28 100644
--- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_bundle.py
+++ b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_bundle.py
@@ -17,5 +17,5 @@ class CSVExtractorBundle(BaseDataSourceBundle):
 
         return CSVExtractorModel(self, **model_data)
 
-    def create_data_source(self, application, model):
-        return CSVExtractorDataSource(self, application, model)
+    def create_data_source(self):
+        return CSVExtractorDataSource(self)
diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
index f2835f8fbaeb5290aa01c53271d1c253109531f8..b42cf1b7a17207188acefa7bb0192b7e81a9dbcb 100644
--- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
+++ b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py
@@ -5,20 +5,20 @@ from force_bdss.api import DataSourceResult
 
 
 class CSVExtractorDataSource(BaseDataSource):
-    def run(self, parameters):
-        with open(self.model.filename) as csvfile:
+    def run(self, model, parameters):
+        with open(model.filename) as csvfile:
             reader = csv.reader(csvfile)
             for rowindex, row in enumerate(reader):
-                if rowindex < self.model.row:
+                if rowindex < model.row:
                     continue
 
-                if rowindex == self.model.row:
+                if rowindex == model.row:
                     return DataSourceResult(
                         originator=self,
-                        value_types=[self.model.cuba_type],
+                        value_types=[model.cuba_type],
                         values=numpy.array(
                             parameters.values[0]+float(
-                                row[self.model.column])).reshape(1, 1)
+                                row[model.column])).reshape(1, 1)
                     )
 
                 return None
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 cacf0adb3d5f11030e2bf3db661d4b730528afb3..e7bc0ebfaa80052e1043f5f6f9185859aff6856d 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
@@ -1,6 +1,11 @@
 import unittest
 
-from force_bdss.bdss_application import BDSSApplication
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+from envisage.plugin import Plugin
 
 from force_bdss.core_plugins.dummy.dummy_dakota.dakota_bundle import (
     DummyDakotaBundle)
@@ -10,15 +15,10 @@ from force_bdss.mco.parameters.base_mco_parameter_factory import \
     BaseMCOParameterFactory
 from force_bdss.mco.parameters.core_mco_parameters import RangedMCOParameter
 
-try:
-    import mock
-except ImportError:
-    from unittest import mock
-
 
 class TestDakotaCommunicator(unittest.TestCase):
     def test_receive_from_mco(self):
-        bundle = DummyDakotaBundle()
+        bundle = DummyDakotaBundle(mock.Mock(spec=Plugin))
         mock_parameter_factory = mock.Mock(spec=BaseMCOParameterFactory)
         model = bundle.create_model()
         model.parameters = [
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
index a94c6b9d4cd471d1fe87f6796b57b76fee373300..cd0446b68480517853da8be7571eaf0336c34441 100644
--- a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
+++ b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source.py
@@ -2,7 +2,7 @@ from force_bdss.api import BaseDataSource, DataSourceResult
 
 
 class DummyDataSource(BaseDataSource):
-    def run(self, parameters):
+    def run(self, model, parameters):
         print(parameters)
         return DataSourceResult(
                 originator=self,
diff --git a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_bundle.py b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_bundle.py
index ebebc00c4ad9e6b9b8278cbfa6978c849e68cc78..1ed7905b6de1269307a21da864c36be231492ac0 100644
--- a/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_bundle.py
+++ b/force_bdss/core_plugins/dummy/dummy_data_source/dummy_data_source_bundle.py
@@ -12,5 +12,5 @@ class DummyDataSourceBundle(BaseDataSourceBundle):
 
         return DummyDataSourceModel(self, **model_data)
 
-    def create_data_source(self, application, model):
-        return DummyDataSource(self, application, model)
+    def create_data_source(self):
+        return DummyDataSource(self)
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
index c0df8ae8bc4f5baaed2097fd4eed1cb489726572..0fe0077dd20c4e35ff26b73fe94c12d6fdf67b22 100644
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
+++ b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator.py
@@ -4,7 +4,7 @@ from force_bdss.api import BaseKPICalculator, KPICalculatorResult, bundle_id
 class DummyKPICalculator(BaseKPICalculator):
     id = bundle_id("enthought", "dummy_kpi_calculator")
 
-    def run(self, data_source_results):
+    def run(self, model, data_source_results):
         res = KPICalculatorResult(
             originator=self,
             value_names=data_source_results[0].value_names,
diff --git a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_bundle.py b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_bundle.py
index b2c567bc6852c7779a6799b2c026b2cda2995756..065361812bb5ecef475ce2b951f9f81f39e9787f 100644
--- a/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_bundle.py
+++ b/force_bdss/core_plugins/dummy/dummy_kpi_calculator/dummy_kpi_calculator_bundle.py
@@ -15,5 +15,5 @@ class DummyKPICalculatorBundle(BaseKPICalculatorBundle):
 
         return DummyKPICalculatorModel(self, **model_data)
 
-    def create_kpi_calculator(self, application, model):
-        return DummyKPICalculator(self, application, model)
+    def create_kpi_calculator(self):
+        return DummyKPICalculator(self)
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py
index ab40c710bbbff3bbdd5c5a39d62b95414198fbc4..76535e51491d2cb84c297362600c27454cb05997 100644
--- a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py
+++ b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_bundle.py
@@ -17,5 +17,5 @@ class KPIAdderBundle(BaseKPICalculatorBundle):
 
         return KPIAdderModel(self, **model_data)
 
-    def create_kpi_calculator(self, application, model):
-        return KPIAdderCalculator(self, application, model)
+    def create_kpi_calculator(self):
+        return KPIAdderCalculator(self)
diff --git a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
index f6bbfe0de501c544cc134851f51a54e5c08b2767..4611683665384da3982d482e4ee99f783c15390b 100644
--- a/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
+++ b/force_bdss/core_plugins/dummy/kpi_adder/kpi_adder_calculator.py
@@ -5,11 +5,11 @@ from force_bdss.api import KPICalculatorResult
 
 
 class KPIAdderCalculator(BaseKPICalculator):
-    def run(self, data_source_results):
+    def run(self, model, data_source_results):
         sum = 0.0
         for res in data_source_results:
             try:
-                value_idx = res.value_types.index(self.model.cuba_type_in)
+                value_idx = res.value_types.index(model.cuba_type_in)
             except ValueError:
                 continue
 
@@ -17,6 +17,6 @@ class KPIAdderCalculator(BaseKPICalculator):
 
         return KPICalculatorResult(
             originator=self,
-            value_types=[self.model.cuba_type_out],
+            value_types=[model.cuba_type_out],
             values=numpy.array([sum])
         )
diff --git a/force_bdss/data_sources/base_data_source.py b/force_bdss/data_sources/base_data_source.py
index ac25f1d6c6dd332f0f5a997af9a9a504b65f7490..11b053a92178485249b548e49e26716ed4f6aa5b 100644
--- a/force_bdss/data_sources/base_data_source.py
+++ b/force_bdss/data_sources/base_data_source.py
@@ -1,8 +1,6 @@
 from traits.api import ABCHasStrictTraits, Instance
 import abc
 
-from .base_data_source_model import BaseDataSourceModel
-from ..bdss_application import BDSSApplication
 from ..data_sources.i_data_source_bundle import IDataSourceBundle
 
 
@@ -14,18 +12,12 @@ class BaseDataSource(ABCHasStrictTraits):
     """
     #: A reference to the bundle
     bundle = Instance(IDataSourceBundle)
-    #: A reference to the application
-    application = Instance(BDSSApplication)
-    #: A reference to the model class
-    model = Instance(BaseDataSourceModel)
 
-    def __init__(self, bundle, application, model, *args, **kwargs):
+    def __init__(self, bundle, *args, **kwargs):
         self.bundle = bundle
-        self.application = application
-        self.model = model
         super(BaseDataSource, self).__init__(*args, **kwargs)
 
     @abc.abstractmethod
-    def run(self, parameters):
+    def run(self, model, parameters):
         """Executes the data source evaluation/fetching and returns
         the list of results as a DataSourceResult instance."""
diff --git a/force_bdss/data_sources/base_data_source_bundle.py b/force_bdss/data_sources/base_data_source_bundle.py
index 422de86f604bb803d248a86a8c9ea99ef9e432c9..d099bf3aee36b362a676e32bcce1946fef9570ca 100644
--- a/force_bdss/data_sources/base_data_source_bundle.py
+++ b/force_bdss/data_sources/base_data_source_bundle.py
@@ -26,7 +26,7 @@ class BaseDataSourceBundle(ABCHasStrictTraits):
         super(BaseDataSourceBundle, self).__init__(*args, **kwargs)
 
     @abc.abstractmethod
-    def create_data_source(self, application, model):
+    def create_data_source(self):
         """Factory method.
         Must return the bundle-specific BaseDataSource instance.
 
diff --git a/force_bdss/data_sources/i_data_source_bundle.py b/force_bdss/data_sources/i_data_source_bundle.py
index 8ed2556078382854920a999ce5c1bf1a8d6ed19f..d3fda63e1f3fb3be3f3dd6b2c340c60a72c23c8b 100644
--- a/force_bdss/data_sources/i_data_source_bundle.py
+++ b/force_bdss/data_sources/i_data_source_bundle.py
@@ -9,7 +9,7 @@ class IDataSourceBundle(Interface):
     #: A human readable name of the bundle
     name = String()
 
-    def create_data_source(self, application, model):
+    def create_data_source(self):
         """Factory method.
         Must return the bundle-specific BaseDataSource instance.
         """
diff --git a/force_bdss/data_sources/tests/test_base_data_source.py b/force_bdss/data_sources/tests/test_base_data_source.py
index e4784fb31f4fd47184eb021e758443d959e03292..810b5f63805914b3b7c872d983eaaae022bbc471 100644
--- a/force_bdss/data_sources/tests/test_base_data_source.py
+++ b/force_bdss/data_sources/tests/test_base_data_source.py
@@ -1,7 +1,6 @@
 import unittest
 
 from force_bdss.data_sources.base_data_source import BaseDataSource
-from force_bdss.data_sources.base_data_source_model import BaseDataSourceModel
 from force_bdss.data_sources.i_data_source_bundle import IDataSourceBundle
 
 try:
@@ -9,8 +8,6 @@ try:
 except ImportError:
     from unittest import mock
 
-from force_bdss.bdss_application import BDSSApplication
-
 
 class DummyDataSource(BaseDataSource):
     def run(self, *args, **kwargs):
@@ -20,10 +17,6 @@ class DummyDataSource(BaseDataSource):
 class TestBaseDataSource(unittest.TestCase):
     def test_initialization(self):
         bundle = mock.Mock(spec=IDataSourceBundle)
-        application = mock.Mock(spec=BDSSApplication)
-        model = mock.Mock(spec=BaseDataSourceModel)
-        ds = DummyDataSource(bundle, application, model)
+        ds = DummyDataSource(bundle)
 
         self.assertEqual(ds.bundle, bundle)
-        self.assertEqual(ds.application, application)
-        self.assertEqual(ds.model, model)
diff --git a/force_bdss/data_sources/tests/test_base_data_source_bundle.py b/force_bdss/data_sources/tests/test_base_data_source_bundle.py
index 3564a7eb423a4ea3e265b4996be184744c8b1d6f..b6994236760f5e9944f6d37e8c3c5e6a28627733 100644
--- a/force_bdss/data_sources/tests/test_base_data_source_bundle.py
+++ b/force_bdss/data_sources/tests/test_base_data_source_bundle.py
@@ -1,5 +1,10 @@
 import unittest
+try:
+    import mock
+except ImportError:
+    from unittest import mock
 
+from envisage.plugin import Plugin
 from force_bdss.data_sources.base_data_source_bundle import \
     BaseDataSourceBundle
 
@@ -9,7 +14,7 @@ class DummyDataSourceBundle(BaseDataSourceBundle):
 
     name = "bar"
 
-    def create_data_source(self, application, model):
+    def create_data_source(self):
         pass
 
     def create_model(self, model_data=None):
@@ -18,6 +23,6 @@ class DummyDataSourceBundle(BaseDataSourceBundle):
 
 class TestBaseDataSourceBundle(unittest.TestCase):
     def test_initialization(self):
-        bundle = DummyDataSourceBundle()
+        bundle = DummyDataSourceBundle(mock.Mock(spec=Plugin))
         self.assertEqual(bundle.id, 'foo')
         self.assertEqual(bundle.name, 'bar')
diff --git a/force_bdss/kpi/base_kpi_calculator.py b/force_bdss/kpi/base_kpi_calculator.py
index d251842e57df4933dadc8c41e72e869e6377213e..dc10bd41eb87e52a7e822187adbda12f27388081 100644
--- a/force_bdss/kpi/base_kpi_calculator.py
+++ b/force_bdss/kpi/base_kpi_calculator.py
@@ -2,8 +2,6 @@ import abc
 
 from traits.api import ABCHasStrictTraits, Instance
 
-from ..bdss_application import BDSSApplication
-from .base_kpi_calculator_model import BaseKPICalculatorModel
 from .i_kpi_calculator_bundle import IKPICalculatorBundle
 
 
@@ -14,19 +12,13 @@ class BaseKPICalculator(ABCHasStrictTraits):
     """
     #: A reference to the bundle
     bundle = Instance(IKPICalculatorBundle)
-    #: A reference to the application
-    application = Instance(BDSSApplication)
-    #: A reference to the model class
-    model = Instance(BaseKPICalculatorModel)
 
-    def __init__(self, bundle, application, model, *args, **kwargs):
+    def __init__(self, bundle, *args, **kwargs):
         self.bundle = bundle
-        self.application = application
-        self.model = model
         super(BaseKPICalculator, self).__init__(*args, **kwargs)
 
     @abc.abstractmethod
-    def run(self, data_source_results):
+    def run(self, model, data_source_results):
         """
         Executes the KPI evaluation and returns the list of results.
         Reimplement this method in your specific KPI calculator.
diff --git a/force_bdss/kpi/base_kpi_calculator_bundle.py b/force_bdss/kpi/base_kpi_calculator_bundle.py
index 756b70d7cf06d5cb4fe3ef329d0ee7aacab2e24e..3d83553325789e861fbb45ba242ffd1f0f8b70c2 100644
--- a/force_bdss/kpi/base_kpi_calculator_bundle.py
+++ b/force_bdss/kpi/base_kpi_calculator_bundle.py
@@ -27,7 +27,7 @@ class BaseKPICalculatorBundle(ABCHasStrictTraits):
         super(BaseKPICalculatorBundle, self).__init__(*args, **kwargs)
 
     @abc.abstractmethod
-    def create_kpi_calculator(self, application, model):
+    def create_kpi_calculator(self):
         """Factory method.
         Creates and returns an instance of a KPI Calculator, associated
         to the given application and model.
diff --git a/force_bdss/kpi/i_kpi_calculator_bundle.py b/force_bdss/kpi/i_kpi_calculator_bundle.py
index 938e7de719990cf5e672c1c350adbf36bfca2a31..7bedd6a3b686200f02c50cb513358a4583dd818f 100644
--- a/force_bdss/kpi/i_kpi_calculator_bundle.py
+++ b/force_bdss/kpi/i_kpi_calculator_bundle.py
@@ -1,4 +1,5 @@
-from traits.api import Interface, String
+from traits.api import Interface, String, Instance
+from envisage.plugin import Plugin
 
 
 class IKPICalculatorBundle(Interface):
@@ -8,7 +9,8 @@ class IKPICalculatorBundle(Interface):
 
     name = String()
 
-    def create_kpi_calculator(self, application, model):
+    plugin = Instance(Plugin)
+    def create_kpi_calculator(self):
         pass
 
     def create_model(self, model_data=None):
diff --git a/force_bdss/kpi/tests/test_base_kpi_calculator.py b/force_bdss/kpi/tests/test_base_kpi_calculator.py
index 512f51fdfe685aaf58296213548ec1a0b12c48cc..548383573691a320db5ec29c4664a62037a9be53 100644
--- a/force_bdss/kpi/tests/test_base_kpi_calculator.py
+++ b/force_bdss/kpi/tests/test_base_kpi_calculator.py
@@ -4,8 +4,6 @@ try:
 except ImportError:
     from unittest import mock
 
-from force_bdss.bdss_application import BDSSApplication
-from force_bdss.kpi.base_kpi_calculator_model import BaseKPICalculatorModel
 from force_bdss.kpi.base_kpi_calculator import BaseKPICalculator
 from force_bdss.kpi.i_kpi_calculator_bundle import IKPICalculatorBundle
 
@@ -18,10 +16,6 @@ class DummyKPICalculator(BaseKPICalculator):
 class TestBaseKPICalculator(unittest.TestCase):
     def test_initialization(self):
         bundle = mock.Mock(spec=IKPICalculatorBundle)
-        application = mock.Mock(spec=BDSSApplication)
-        model = mock.Mock(spec=BaseKPICalculatorModel)
-        kpic = DummyKPICalculator(bundle, application, model)
+        kpic = DummyKPICalculator(bundle)
 
         self.assertEqual(kpic.bundle, bundle)
-        self.assertEqual(kpic.application, application)
-        self.assertEqual(kpic.model, model)
diff --git a/force_bdss/kpi/tests/test_base_kpi_calculator_bundle.py b/force_bdss/kpi/tests/test_base_kpi_calculator_bundle.py
index 30dc60e7f8a5d4e6ebbc7598b14a03f247b61f3c..f3cc87d981890778075ebd95057e3c09ae5c49dd 100644
--- a/force_bdss/kpi/tests/test_base_kpi_calculator_bundle.py
+++ b/force_bdss/kpi/tests/test_base_kpi_calculator_bundle.py
@@ -1,4 +1,10 @@
 import unittest
+from envisage.plugin import Plugin
+
+try:
+    import mock
+except ImportError:
+    from unittest import mock
 
 from force_bdss.kpi.base_kpi_calculator_bundle import \
     BaseKPICalculatorBundle
@@ -9,7 +15,7 @@ class DummyKPICalculatorBundle(BaseKPICalculatorBundle):
 
     name = "bar"
 
-    def create_kpi_calculator(self, application, model):
+    def create_kpi_calculator(self):
         pass
 
     def create_model(self, model_data=None):
@@ -18,6 +24,6 @@ class DummyKPICalculatorBundle(BaseKPICalculatorBundle):
 
 class TestBaseKPICalculatorBundle(unittest.TestCase):
     def test_initialization(self):
-        bundle = DummyKPICalculatorBundle()
+        bundle = DummyKPICalculatorBundle(mock.Mock(spec=Plugin))
         self.assertEqual(bundle.id, 'foo')
         self.assertEqual(bundle.name, 'bar')
diff --git a/force_bdss/mco/i_mco_bundle.py b/force_bdss/mco/i_mco_bundle.py
index 3e0c19947890d7b8c2d2ba4c1d87dabb354aa4a4..69d4657ae4423ec23c16987eca49fb44b079864d 100644
--- a/force_bdss/mco/i_mco_bundle.py
+++ b/force_bdss/mco/i_mco_bundle.py
@@ -1,4 +1,5 @@
-from traits.api import Interface, String
+from traits.api import Interface, String, Instance
+from envisage.plugin import Plugin
 
 
 class IMCOBundle(Interface):
@@ -9,6 +10,8 @@ class IMCOBundle(Interface):
 
     name = String()
 
+    plugin = Instance(Plugin)
+
     def create_optimizer(self):
         pass
 
diff --git a/force_bdss/mco/tests/test_base_mco_bundle.py b/force_bdss/mco/tests/test_base_mco_bundle.py
index cd253ff428620b331cdd87ee75953861a573c0a0..fc173521607f0bc18ded75949a0dce8a48472616 100644
--- a/force_bdss/mco/tests/test_base_mco_bundle.py
+++ b/force_bdss/mco/tests/test_base_mco_bundle.py
@@ -1,5 +1,12 @@
 import unittest
 
+try:
+    import mock
+except ImportError:
+    from unittest import mock
+
+from envisage.plugin import Plugin
+
 from force_bdss.mco.base_mco_bundle import BaseMCOBundle
 
 
@@ -8,18 +15,18 @@ class DummyMCOBundle(BaseMCOBundle):
 
     name = "bar"
 
-    def create_optimizer(self, application, model):
+    def create_optimizer(self):
         pass
 
     def create_model(self, model_data=None):
         pass
 
-    def create_communicator(self, application, model):
+    def create_communicator(self):
         pass
 
 
 class TestBaseMCOBundle(unittest.TestCase):
     def test_initialization(self):
-        bundle = DummyMCOBundle()
+        bundle = DummyMCOBundle(mock.Mock(spec=Plugin))
         self.assertEqual(bundle.id, 'foo')
         self.assertEqual(bundle.name, 'bar')