diff --git a/briar-android/src/org/briarproject/android/AndroidComponent.java b/briar-android/src/org/briarproject/android/AndroidComponent.java
index e182b9a47f8abcdeab4777a508ebc91e8695c9eb..4db188d9f60f2fa9618ec5333aada3a0c4f44542 100644
--- a/briar-android/src/org/briarproject/android/AndroidComponent.java
+++ b/briar-android/src/org/briarproject/android/AndroidComponent.java
@@ -11,7 +11,6 @@ import org.briarproject.android.forum.ForumListFragment;
 import org.briarproject.android.forum.ReadForumPostActivity;
 import org.briarproject.android.forum.ShareForumActivity;
 import org.briarproject.android.forum.WriteForumPostActivity;
-import org.briarproject.android.fragment.SettingsFragment;
 import org.briarproject.android.identity.CreateIdentityActivity;
 import org.briarproject.android.invitation.AddContactActivity;
 import org.briarproject.android.panic.PanicPreferencesActivity;
@@ -63,9 +62,9 @@ public interface AndroidComponent extends CoreEagerSingletons {
 
 	void inject(ForumActivity activity);
 
-	void inject(ContactListFragment fragment);
+	void inject(SettingsActivity activity);
 
-	void inject(SettingsFragment fragment);
+	void inject(ContactListFragment fragment);
 
 	void inject(ForumListFragment fragment);
 
diff --git a/briar-android/src/org/briarproject/android/SettingsActivity.java b/briar-android/src/org/briarproject/android/SettingsActivity.java
index 4841c6db97ebf5f351977f9b938f45df97da14b6..0ec6c916ce5dd461d705c61fa36c14c5593378f8 100644
--- a/briar-android/src/org/briarproject/android/SettingsActivity.java
+++ b/briar-android/src/org/briarproject/android/SettingsActivity.java
@@ -11,8 +11,9 @@ import org.briarproject.api.settings.SettingsManager;
 import javax.inject.Inject;
 
 public class SettingsActivity extends BriarActivity {
-	@Inject private SettingsManager settingsManager;
-	@Inject private EventBus eventBus;
+
+	@Inject protected SettingsManager settingsManager;
+	@Inject protected EventBus eventBus;
 
 	@Override
 	public void onCreate(Bundle bundle) {
@@ -27,6 +28,11 @@ public class SettingsActivity extends BriarActivity {
 		setContentView(R.layout.activity_settings);
 	}
 
+	@Override
+	public void injectActivity(AndroidComponent component) {
+		component.inject(this);
+	}
+
 	public SettingsManager getSettingsManager() {
 		return settingsManager;
 	}
diff --git a/briar-core/src/org/briarproject/clients/ClientsModule.java b/briar-core/src/org/briarproject/clients/ClientsModule.java
index 055143d43b799faaa5abff52d053e6b1be88fa7d..0d42db6c90c025a3b6946e899ca567cb56fd4edc 100644
--- a/briar-core/src/org/briarproject/clients/ClientsModule.java
+++ b/briar-core/src/org/briarproject/clients/ClientsModule.java
@@ -1,7 +1,10 @@
 package org.briarproject.clients;
 
 import org.briarproject.api.clients.ClientHelper;
+import org.briarproject.api.clients.MessageQueueManager;
 import org.briarproject.api.clients.PrivateGroupFactory;
+import org.briarproject.api.clients.QueueMessageFactory;
+import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.data.BdfReaderFactory;
 import org.briarproject.api.data.BdfWriterFactory;
 import org.briarproject.api.data.MetadataEncoder;
@@ -9,10 +12,7 @@ import org.briarproject.api.data.MetadataParser;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.sync.GroupFactory;
 import org.briarproject.api.sync.MessageFactory;
-import org.briarproject.data.DataModule;
-import org.briarproject.db.DatabaseModule;
-import org.briarproject.messaging.MessagingModule;
-import org.briarproject.sync.SyncModule;
+import org.briarproject.api.sync.ValidationManager;
 
 import dagger.Module;
 import dagger.Provides;
@@ -31,10 +31,20 @@ public class ClientsModule {
 
 	@Provides
 	PrivateGroupFactory providePrivateGroupFactory(GroupFactory groupFactory,
-			BdfWriterFactory bdfWriterFactory) {
-		return new PrivateGroupFactoryImpl(groupFactory, bdfWriterFactory);
+			ClientHelper clientHelper) {
+		return new PrivateGroupFactoryImpl(groupFactory, clientHelper);
 	}
 
-		bind(QueueMessageFactory.class).to(QueueMessageFactoryImpl.class);
+	@Provides
+	MessageQueueManager provideMessageQueueManager(DatabaseComponent db,
+			ClientHelper clientHelper, QueueMessageFactory queueMessageFactory,
+			ValidationManager validationManager) {
+		return new MessageQueueManagerImpl(db, clientHelper,
+				queueMessageFactory, validationManager);
+	}
 
+	@Provides
+	QueueMessageFactory provideQueueMessageFactory(CryptoComponent crypto) {
+		return new QueueMessageFactoryImpl(crypto);
+	}
 }
diff --git a/briar-core/src/org/briarproject/clients/PrivateGroupFactoryImpl.java b/briar-core/src/org/briarproject/clients/PrivateGroupFactoryImpl.java
index 5fd4ee98ae535ec8a3d14f1e886f6fa7c8a12c03..bb0ede9441d3df0d73d33a3eaedd0caf53f313ff 100644
--- a/briar-core/src/org/briarproject/clients/PrivateGroupFactoryImpl.java
+++ b/briar-core/src/org/briarproject/clients/PrivateGroupFactoryImpl.java
@@ -1,6 +1,5 @@
 package org.briarproject.clients;
 
-import com.google.inject.Inject;
 
 import org.briarproject.api.Bytes;
 import org.briarproject.api.FormatException;
@@ -13,6 +12,8 @@ import org.briarproject.api.sync.ClientId;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupFactory;
 
+import javax.inject.Inject;
+
 class PrivateGroupFactoryImpl implements PrivateGroupFactory {
 
 	private final GroupFactory groupFactory;