diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py
index 580b98fa1305d3d115a95a491dd3c55c11c82281..1fda69d7f9132a5df95fba288304c1a178208a90 100644
--- a/opentech/apply/activity/messaging.py
+++ b/opentech/apply/activity/messaging.py
@@ -83,10 +83,8 @@ class ActivityAdapter(AdapterBase):
 
 
 class MessengerBackend:
-    adapters = [
-        ActivityAdapter(),
-        MessageAdapter(),
-    ]
+    def __init__(self, *adpaters):
+        self.adapters = adpaters
 
     def __call__(self, message_type, request, user, submission, **kwargs):
         return self.send(message_type, request=request, user=user, submission=submission, **kwargs)
@@ -96,4 +94,10 @@ class MessengerBackend:
             adapter.process(message_type, **kwargs)
 
 
-messenger = MessengerBackend()
+adapters = [
+    ActivityAdapter(),
+    MessageAdapter(),
+]
+
+
+messenger = MessengerBackend(*adapters)
diff --git a/opentech/apply/activity/tests/test_messaging.py b/opentech/apply/activity/tests/test_messaging.py
index 92a5415e3100979974c9e9b887525ae1c5260491..2ac154d9ca98e0ff5dc8b6f89a6ee2c1a6f642c8 100644
--- a/opentech/apply/activity/tests/test_messaging.py
+++ b/opentech/apply/activity/tests/test_messaging.py
@@ -1,8 +1,8 @@
-from unittest.mock import patch
+from unittest.mock import Mock, patch
 
 from django.test import TestCase
 
-from ..messaging import AdapterBase, MESSAGES
+from ..messaging import AdapterBase, MessengerBackend, MESSAGES
 
 
 class TestAdapter(AdapterBase):
@@ -59,3 +59,28 @@ class TestBaseAdapter(TestCase):
         self.adapter.process(message_type, message=message)
 
         self.adapter.send_message.assert_called_once_with(message, message=message)
+
+
+class TestMessageBackend(TestCase):
+    def setUp(self):
+        self.mocked_adapter = Mock(AdapterBase)
+        self.backend = MessengerBackend
+
+    def test_message_sent_to_adapter(self):
+        adapter = self.mocked_adapter()
+        messenger = self.backend(adapter)
+
+        kwargs = {'request': None, 'user': None, 'submission': None}
+        messenger(MESSAGES.UPDATE_LEAD, **kwargs)
+
+        adapter.process.assert_called_once_with(MESSAGES.UPDATE_LEAD, **kwargs)
+
+    def test_message_sent_to_all_adapter(self):
+        adapters = [self.mocked_adapter(), self.mocked_adapter()]
+        messenger = self.backend(*adapters)
+
+        kwargs = {'request': None, 'user': None, 'submission': None}
+        messenger(MESSAGES.UPDATE_LEAD, **kwargs)
+
+        adapter = adapters[0]
+        self.assertEqual(adapter.process.call_count, len(adapters))