diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java
index 2651833f194b065326a5e063c17e2f0bc3ac2285..b21d072321464b72d3e20d4123f46b12235651d3 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java
@@ -4,8 +4,6 @@ import android.app.Activity;
 
 import org.briarproject.briar.android.controller.BriarController;
 import org.briarproject.briar.android.controller.BriarControllerImpl;
-import org.briarproject.briar.android.controller.ConfigController;
-import org.briarproject.briar.android.controller.ConfigControllerImpl;
 import org.briarproject.briar.android.controller.DbController;
 import org.briarproject.briar.android.controller.DbControllerImpl;
 import org.briarproject.briar.android.login.PasswordController;
@@ -48,13 +46,6 @@ public class ActivityModule {
 		return setupController;
 	}
 
-	@ActivityScope
-	@Provides
-	ConfigController provideConfigController(
-			ConfigControllerImpl configController) {
-		return configController;
-	}
-
 	@ActivityScope
 	@Provides
 	PasswordController providePasswordController(
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java
deleted file mode 100644
index decc39a035ad4c2e16a5bb1671a8784538a74c21..0000000000000000000000000000000000000000
--- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.briarproject.briar.android.controller;
-
-import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
-
-import javax.annotation.Nullable;
-
-@NotNullByDefault
-public interface ConfigController {
-
-	@Nullable
-	String getEncryptedDatabaseKey();
-
-	boolean storeEncryptedDatabaseKey(String hex);
-
-	void deleteAccount();
-
-	boolean accountExists();
-
-	boolean accountSignedIn();
-
-}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java
deleted file mode 100644
index bd76c558c6ba4439c787ed7f00f5afd3b6ccce1c..0000000000000000000000000000000000000000
--- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.briarproject.briar.android.controller;
-
-import android.util.Log;
-
-import org.briarproject.bramble.api.account.AccountManager;
-import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
-
-import javax.annotation.Nullable;
-import javax.inject.Inject;
-
-// TODO: Remove this class, which just delegates to AccountManager
-
-@NotNullByDefault
-public class ConfigControllerImpl implements ConfigController {
-
-	protected final AccountManager accountManager;
-
-	@Inject
-	public ConfigControllerImpl(AccountManager accountManager) {
-		// TODO: Remove
-		Log.i(getClass().getName(), "Using account manager "
-				+ accountManager.getClass().getName());
-		this.accountManager = accountManager;
-	}
-
-	@Override
-	@Nullable
-	public String getEncryptedDatabaseKey() {
-		return accountManager.getEncryptedDatabaseKey();
-	}
-
-	@Override
-	public boolean storeEncryptedDatabaseKey(String hex) {
-		return accountManager.storeEncryptedDatabaseKey(hex);
-	}
-
-	@Override
-	public void deleteAccount() {
-		accountManager.deleteAccount();
-	}
-
-	@Override
-	public boolean accountExists() {
-		return accountManager.hasDatabaseKey();
-	}
-
-	@Override
-	public boolean accountSignedIn() {
-		return accountManager.hasDatabaseKey();
-	}
-}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
index 6de30bf7fc34e2798a0c31443a574dd3e362d116..537d00d08edc2b3ff10a88ee1b7fc57a42351a6a 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java
@@ -12,6 +12,7 @@ import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ProgressBar;
 
+import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.Localizer;
 import org.briarproject.briar.android.activity.ActivityComponent;
@@ -31,6 +32,9 @@ import static android.view.View.VISIBLE;
 
 public class PasswordActivity extends BaseActivity {
 
+	@Inject
+	AccountManager accountManager;
+
 	@Inject
 	PasswordController passwordController;
 
@@ -48,7 +52,7 @@ public class PasswordActivity extends BaseActivity {
 		// fade-in after splash screen instead of default animation
 		overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
 
-		if (!passwordController.accountExists()) {
+		if (!accountManager.accountExists()) {
 			deleteAccount();
 			return;
 		}
@@ -105,7 +109,7 @@ public class PasswordActivity extends BaseActivity {
 	}
 
 	private void deleteAccount() {
-		passwordController.deleteAccount();
+		accountManager.deleteAccount();
 		Localizer.reinitialize();
 		UiUtils.setTheme(this, getString(R.string.pref_theme_light_value));
 		setResult(RESULT_CANCELED);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java
index ec3cb7ed7ff0dc198b3c295ee2bec54e282533b9..6ad1d26b51b2b919d696853c5401a43f28dfe763 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java
@@ -1,11 +1,10 @@
 package org.briarproject.briar.android.login;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
-import org.briarproject.briar.android.controller.ConfigController;
 import org.briarproject.briar.android.controller.handler.ResultHandler;
 
 @NotNullByDefault
-public interface PasswordController extends ConfigController {
+public interface PasswordController {
 
 	float estimatePasswordStrength(String password);
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java
index 23f47945051d6542c116e1f84fff0710cd48ea7f..53cc1b3bd7e1d41c9915ef18430ca07a1f384224 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java
@@ -7,7 +7,6 @@ import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator;
 import org.briarproject.bramble.api.crypto.SecretKey;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.bramble.util.StringUtils;
-import org.briarproject.briar.android.controller.ConfigControllerImpl;
 import org.briarproject.briar.android.controller.handler.ResultHandler;
 
 import java.util.concurrent.Executor;
@@ -19,12 +18,12 @@ import static org.briarproject.bramble.util.LogUtils.logDuration;
 import static org.briarproject.bramble.util.LogUtils.now;
 
 @NotNullByDefault
-public class PasswordControllerImpl extends ConfigControllerImpl
-		implements PasswordController {
+public class PasswordControllerImpl implements PasswordController {
 
 	private static final Logger LOG =
 			Logger.getLogger(PasswordControllerImpl.class.getName());
 
+	protected final AccountManager accountManager;
 	protected final Executor cryptoExecutor;
 	protected final CryptoComponent crypto;
 	private final PasswordStrengthEstimator strengthEstimator;
@@ -33,7 +32,7 @@ public class PasswordControllerImpl extends ConfigControllerImpl
 	PasswordControllerImpl(AccountManager accountManager,
 			@CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto,
 			PasswordStrengthEstimator strengthEstimator) {
-		super(accountManager);
+		this.accountManager = accountManager;
 		this.cryptoExecutor = cryptoExecutor;
 		this.crypto = crypto;
 		this.strengthEstimator = strengthEstimator;
@@ -70,13 +69,14 @@ public class PasswordControllerImpl extends ConfigControllerImpl
 			} else {
 				String hex =
 						encryptDatabaseKey(new SecretKey(key), newPassword);
-				resultHandler.onResult(storeEncryptedDatabaseKey(hex));
+				boolean stored = accountManager.storeEncryptedDatabaseKey(hex);
+				resultHandler.onResult(stored);
 			}
 		});
 	}
 
 	private byte[] getEncryptedKey() {
-		String hex = getEncryptedDatabaseKey();
+		String hex = accountManager.getEncryptedDatabaseKey();
 		if (hex == null)
 			throw new IllegalStateException("Encrypted database key is null");
 		return StringUtils.fromHexString(hex);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java
index f91c57512f1c02e9a53d591d17f7dbdfbc68154e..e38cfeb0c9e2acda08155cc9be2be824f19dd768 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java
@@ -4,6 +4,7 @@ import android.annotation.TargetApi;
 import android.content.Intent;
 import android.os.Bundle;
 
+import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.briar.R;
@@ -25,6 +26,9 @@ public class SetupActivity extends BaseActivity
 	private static final String STATE_KEY_AUTHOR_NAME = "authorName";
 	private static final String STATE_KEY_PASSWORD = "password";
 
+	@Inject
+	AccountManager accountManager;
+
 	@Inject
 	SetupController setupController;
 
@@ -39,8 +43,7 @@ public class SetupActivity extends BaseActivity
 		setContentView(R.layout.activity_fragment_container);
 
 		if (state == null) {
-			if (setupController.accountExists())
-				throw new AssertionError();
+			if (accountManager.accountExists()) throw new AssertionError();
 			showInitialFragment(AuthorNameFragment.newInstance());
 		} else {
 			authorName = state.getString(STATE_KEY_AUTHOR_NAME);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java
index c4ce4ae2c964f37466ed1a09a5faac6c123c74c2..a29d2bc76cd3dd86f575232194bb1f600a7be032 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java
@@ -110,7 +110,7 @@ public class SetupControllerImpl extends PasswordControllerImpl
 			identityManager.registerLocalAuthor(localAuthor);
 			SecretKey key = crypto.generateSecretKey();
 			String hex = encryptDatabaseKey(key, password);
-			storeEncryptedDatabaseKey(hex);
+			accountManager.storeEncryptedDatabaseKey(hex);
 			accountManager.setDatabaseKey(key);
 			resultHandler.onResult(null);
 		});
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java
index fb2cd920ff2b874bb8db4798ef0e6732eebb59ef..9d64d15000e00ef02b7cbfb4e4b1d6f10200e723 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java
@@ -7,10 +7,10 @@ import android.os.Build;
 import android.os.Bundle;
 import android.support.v7.preference.PreferenceManager;
 
+import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.system.AndroidExecutor;
 import org.briarproject.briar.android.activity.ActivityComponent;
 import org.briarproject.briar.android.activity.BriarActivity;
-import org.briarproject.briar.android.controller.ConfigController;
 import org.iilab.IilabEngineeringRSA2048Pin;
 
 import java.util.logging.Logger;
@@ -33,7 +33,7 @@ public class PanicResponderActivity extends BriarActivity {
 			Logger.getLogger(PanicResponderActivity.class.getName());
 
 	@Inject
-	protected ConfigController configController;
+	protected AccountManager accountManager;
 	@Inject
 	protected AndroidExecutor androidExecutor;
 
@@ -94,7 +94,7 @@ public class PanicResponderActivity extends BriarActivity {
 
 	private void deleteAllData() {
 		androidExecutor.runOnBackgroundThread(() -> {
-			configController.deleteAccount();
+			accountManager.deleteAccount();
 			// TODO somehow delete/shred the database more thoroughly
 			PanicResponder.deleteAllAppData(PanicResponderActivity.this);
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java
index 8f3dd28828ca4330a2b69a1c34c3b879fa4a9613..e878d2376278c4ce83352f55bb9ef07301505d25 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java
@@ -7,11 +7,11 @@ import android.os.Handler;
 import android.support.v7.preference.PreferenceManager;
 import android.transition.Fade;
 
+import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.system.AndroidExecutor;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
 import org.briarproject.briar.android.activity.BaseActivity;
-import org.briarproject.briar.android.controller.ConfigController;
 import org.briarproject.briar.android.login.OpenDatabaseActivity;
 import org.briarproject.briar.android.login.SetupActivity;
 
@@ -27,7 +27,7 @@ public class SplashScreenActivity extends BaseActivity {
 			Logger.getLogger(SplashScreenActivity.class.getName());
 
 	@Inject
-	protected ConfigController configController;
+	protected AccountManager accountManager;
 	@Inject
 	protected AndroidExecutor androidExecutor;
 
@@ -43,7 +43,7 @@ public class SplashScreenActivity extends BaseActivity {
 
 		setContentView(R.layout.splash);
 
-		if (configController.accountSignedIn()) {
+		if (accountManager.hasDatabaseKey()) {
 			startActivity(new Intent(this, OpenDatabaseActivity.class));
 			finish();
 		} else {
@@ -64,12 +64,12 @@ public class SplashScreenActivity extends BaseActivity {
 			LOG.info("Expired");
 			startActivity(new Intent(this, ExpiredActivity.class));
 		} else {
-			if (configController.accountExists()) {
+			if (accountManager.accountExists()) {
 				LOG.info("Account exists");
 				startActivity(new Intent(this, OpenDatabaseActivity.class));
 			} else {
 				LOG.info("Account does not exist");
-				configController.deleteAccount();
+				accountManager.deleteAccount();
 				startActivity(new Intent(this, SetupActivity.class));
 			}
 		}