diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
index 9e46afac57f2f8d3a691549d71f4a41215bba8f5..ea9cda93705597b18213923eb335b42fe53b0ac3 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
@@ -40,7 +40,7 @@ import org.briarproject.api.event.EventListener;
 import org.briarproject.api.event.MessageAddedEvent;
 import org.briarproject.api.event.MessageExpiredEvent;
 import org.briarproject.api.messaging.GroupId;
-import org.briarproject.api.transport.ConnectionRegistry;
+import org.briarproject.api.plugins.ConnectionRegistry;
 
 import android.content.Intent;
 import android.content.res.Resources;
diff --git a/briar-api/src/org/briarproject/api/transport/ConnectionDispatcher.java b/briar-api/src/org/briarproject/api/plugins/ConnectionDispatcher.java
similarity index 76%
rename from briar-api/src/org/briarproject/api/transport/ConnectionDispatcher.java
rename to briar-api/src/org/briarproject/api/plugins/ConnectionDispatcher.java
index 6b2058c38f459394f434876e72605154300c26cb..d63518a70b90f9c857a5dbf0bf8159b74e926d20 100644
--- a/briar-api/src/org/briarproject/api/transport/ConnectionDispatcher.java
+++ b/briar-api/src/org/briarproject/api/plugins/ConnectionDispatcher.java
@@ -1,9 +1,7 @@
-package org.briarproject.api.transport;
+package org.briarproject.api.plugins;
 
 import org.briarproject.api.ContactId;
 import org.briarproject.api.TransportId;
-import org.briarproject.api.plugins.TransportConnectionReader;
-import org.briarproject.api.plugins.TransportConnectionWriter;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
 
 public interface ConnectionDispatcher {
diff --git a/briar-api/src/org/briarproject/api/transport/ConnectionRegistry.java b/briar-api/src/org/briarproject/api/plugins/ConnectionRegistry.java
similarity index 91%
rename from briar-api/src/org/briarproject/api/transport/ConnectionRegistry.java
rename to briar-api/src/org/briarproject/api/plugins/ConnectionRegistry.java
index 91a5a3da45b96a60321069008a92c55b06f9127f..c1a1046c8000e167f15453a8bbd989e90e75d241 100644
--- a/briar-api/src/org/briarproject/api/transport/ConnectionRegistry.java
+++ b/briar-api/src/org/briarproject/api/plugins/ConnectionRegistry.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.transport;
+package org.briarproject.api.plugins;
 
 import java.util.Collection;
 
diff --git a/briar-core/src/org/briarproject/invitation/AliceConnector.java b/briar-core/src/org/briarproject/invitation/AliceConnector.java
index 955dc158872d56f80bcfa806f6dc674678342087..378184fc6cdccd947cab36f3d8f950235c78e6d9 100644
--- a/briar-core/src/org/briarproject/invitation/AliceConnector.java
+++ b/briar-core/src/org/briarproject/invitation/AliceConnector.java
@@ -21,6 +21,7 @@ import org.briarproject.api.crypto.PseudoRandom;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.messaging.GroupFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
 import org.briarproject.api.serial.Reader;
@@ -28,7 +29,6 @@ import org.briarproject.api.serial.ReaderFactory;
 import org.briarproject.api.serial.Writer;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.transport.StreamReader;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriter;
diff --git a/briar-core/src/org/briarproject/invitation/BobConnector.java b/briar-core/src/org/briarproject/invitation/BobConnector.java
index 4da2407eb3fce591147c8da2910dfd03ef497e08..a89efd1762411b1ec2711effa44dda9a3ad85611 100644
--- a/briar-core/src/org/briarproject/invitation/BobConnector.java
+++ b/briar-core/src/org/briarproject/invitation/BobConnector.java
@@ -21,6 +21,7 @@ import org.briarproject.api.crypto.PseudoRandom;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.messaging.GroupFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
 import org.briarproject.api.serial.Reader;
@@ -28,7 +29,6 @@ import org.briarproject.api.serial.ReaderFactory;
 import org.briarproject.api.serial.Writer;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.transport.StreamReader;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriter;
diff --git a/briar-core/src/org/briarproject/invitation/Connector.java b/briar-core/src/org/briarproject/invitation/Connector.java
index 32347a130a0173f238c835ba5ed55836d1bdad8c..b97578fcd674d1d62656a7437f84949bb08a21ef 100644
--- a/briar-core/src/org/briarproject/invitation/Connector.java
+++ b/briar-core/src/org/briarproject/invitation/Connector.java
@@ -43,6 +43,7 @@ import org.briarproject.api.db.NoSuchTransportException;
 import org.briarproject.api.invitation.InvitationConstants;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.GroupFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
 import org.briarproject.api.serial.Reader;
@@ -50,7 +51,6 @@ import org.briarproject.api.serial.ReaderFactory;
 import org.briarproject.api.serial.Writer;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.transport.Endpoint;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
diff --git a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
index 7473c27b7e6f7e100b5dbdc5052b09fb55ef3f2d..4e88d55036c8b08ec27e21fe4100c386215e862f 100644
--- a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
+++ b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
@@ -27,12 +27,12 @@ import org.briarproject.api.invitation.InvitationListener;
 import org.briarproject.api.invitation.InvitationState;
 import org.briarproject.api.invitation.InvitationTask;
 import org.briarproject.api.messaging.GroupFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.PluginManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.serial.ReaderFactory;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
 
diff --git a/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java b/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
index e847269f703a203fe06caa4ae98b4f333723e35e..3052fd85407e79bc6c4b9974c2e51ef9cf0ab135 100644
--- a/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
+++ b/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
@@ -10,11 +10,11 @@ import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.invitation.InvitationTask;
 import org.briarproject.api.invitation.InvitationTaskFactory;
 import org.briarproject.api.messaging.GroupFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.PluginManager;
 import org.briarproject.api.serial.ReaderFactory;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
 
diff --git a/briar-core/src/org/briarproject/transport/ConnectionDispatcherImpl.java b/briar-core/src/org/briarproject/plugins/ConnectionDispatcherImpl.java
similarity index 98%
rename from briar-core/src/org/briarproject/transport/ConnectionDispatcherImpl.java
rename to briar-core/src/org/briarproject/plugins/ConnectionDispatcherImpl.java
index bd073e7275104384f8f6a5c3b929271a867bc2f6..39469cb7fb009e72f82cf0abb4117700eb16d697 100644
--- a/briar-core/src/org/briarproject/transport/ConnectionDispatcherImpl.java
+++ b/briar-core/src/org/briarproject/plugins/ConnectionDispatcherImpl.java
@@ -1,4 +1,4 @@
-package org.briarproject.transport;
+package org.briarproject.plugins;
 
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.api.transport.TransportConstants.TAG_LENGTH;
@@ -19,11 +19,11 @@ import org.briarproject.api.db.DbException;
 import org.briarproject.api.lifecycle.IoExecutor;
 import org.briarproject.api.messaging.MessagingSession;
 import org.briarproject.api.messaging.MessagingSessionFactory;
+import org.briarproject.api.plugins.ConnectionDispatcher;
+import org.briarproject.api.plugins.ConnectionRegistry;
 import org.briarproject.api.plugins.TransportConnectionReader;
 import org.briarproject.api.plugins.TransportConnectionWriter;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
-import org.briarproject.api.transport.ConnectionDispatcher;
-import org.briarproject.api.transport.ConnectionRegistry;
 import org.briarproject.api.transport.StreamContext;
 import org.briarproject.api.transport.StreamReader;
 import org.briarproject.api.transport.StreamReaderFactory;
diff --git a/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java b/briar-core/src/org/briarproject/plugins/ConnectionRegistryImpl.java
similarity index 96%
rename from briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java
rename to briar-core/src/org/briarproject/plugins/ConnectionRegistryImpl.java
index 2e7485faa5ce86d563a9bb38dbb98100dff9e5c6..2f7d0788968d34e25146237f630a35af58326995 100644
--- a/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java
+++ b/briar-core/src/org/briarproject/plugins/ConnectionRegistryImpl.java
@@ -1,4 +1,4 @@
-package org.briarproject.transport;
+package org.briarproject.plugins;
 
 import static java.util.logging.Level.INFO;
 
@@ -15,7 +15,7 @@ import org.briarproject.api.TransportId;
 import org.briarproject.api.event.ContactConnectedEvent;
 import org.briarproject.api.event.ContactDisconnectedEvent;
 import org.briarproject.api.event.EventBus;
-import org.briarproject.api.transport.ConnectionRegistry;
+import org.briarproject.api.plugins.ConnectionRegistry;
 
 import com.google.inject.Inject;
 
diff --git a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
index 745d5df05348ff8bac1827366b3f7e5141de5bf7..0fc3ca3474e52f79380dc55647653992f330ef0f 100644
--- a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
+++ b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
@@ -24,6 +24,7 @@ import org.briarproject.api.TransportProperties;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.lifecycle.IoExecutor;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.Plugin;
 import org.briarproject.api.plugins.PluginCallback;
 import org.briarproject.api.plugins.PluginManager;
@@ -39,7 +40,6 @@ import org.briarproject.api.plugins.simplex.SimplexPluginCallback;
 import org.briarproject.api.plugins.simplex.SimplexPluginConfig;
 import org.briarproject.api.plugins.simplex.SimplexPluginFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.ui.UiCallback;
 
 // FIXME: Don't make alien calls with a lock held (that includes waiting on a
diff --git a/briar-core/src/org/briarproject/plugins/PluginsModule.java b/briar-core/src/org/briarproject/plugins/PluginsModule.java
index aca1ef52c17b1bc3129d2bf3ac5f650c81b9443a..9f52848646542ec56a284aa5434492e1a6b06ebd 100644
--- a/briar-core/src/org/briarproject/plugins/PluginsModule.java
+++ b/briar-core/src/org/briarproject/plugins/PluginsModule.java
@@ -3,6 +3,8 @@ package org.briarproject.plugins;
 import javax.inject.Singleton;
 
 import org.briarproject.api.lifecycle.LifecycleManager;
+import org.briarproject.api.plugins.ConnectionDispatcher;
+import org.briarproject.api.plugins.ConnectionRegistry;
 import org.briarproject.api.plugins.PluginManager;
 
 import com.google.inject.AbstractModule;
@@ -13,6 +15,9 @@ public class PluginsModule extends AbstractModule {
 	@Override
 	protected void configure() {
 		bind(Poller.class).to(PollerImpl.class);
+		bind(ConnectionDispatcher.class).to(ConnectionDispatcherImpl.class);
+		bind(ConnectionRegistry.class).to(
+				ConnectionRegistryImpl.class).in(Singleton.class);
 	}
 
 	@Provides @Singleton
diff --git a/briar-core/src/org/briarproject/plugins/PollerImpl.java b/briar-core/src/org/briarproject/plugins/PollerImpl.java
index b560bfdd51bb7d0de4823b1bc78a83f06053fb5e..bd0f03a273c1a8e48465fe3e863e78ecbf2eb347 100644
--- a/briar-core/src/org/briarproject/plugins/PollerImpl.java
+++ b/briar-core/src/org/briarproject/plugins/PollerImpl.java
@@ -10,9 +10,9 @@ import java.util.logging.Logger;
 import javax.inject.Inject;
 
 import org.briarproject.api.lifecycle.IoExecutor;
+import org.briarproject.api.plugins.ConnectionRegistry;
 import org.briarproject.api.plugins.Plugin;
 import org.briarproject.api.system.Timer;
-import org.briarproject.api.transport.ConnectionRegistry;
 
 class PollerImpl implements Poller {
 
diff --git a/briar-core/src/org/briarproject/transport/TransportModule.java b/briar-core/src/org/briarproject/transport/TransportModule.java
index 3567b45fb466014b578d9dad995c4a81b404764a..42e2417e8c20de7e50040c3e8517b4bc18ed78b1 100644
--- a/briar-core/src/org/briarproject/transport/TransportModule.java
+++ b/briar-core/src/org/briarproject/transport/TransportModule.java
@@ -4,8 +4,6 @@ import javax.inject.Singleton;
 
 import org.briarproject.api.crypto.KeyManager;
 import org.briarproject.api.lifecycle.LifecycleManager;
-import org.briarproject.api.transport.ConnectionDispatcher;
-import org.briarproject.api.transport.ConnectionRegistry;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
 import org.briarproject.api.transport.TagRecogniser;
@@ -17,15 +15,10 @@ public class TransportModule extends AbstractModule {
 
 	@Override
 	protected void configure() {
-		bind(ConnectionDispatcher.class).to(ConnectionDispatcherImpl.class);
-		bind(StreamReaderFactory.class).to(
-				StreamReaderFactoryImpl.class);
+		bind(StreamReaderFactory.class).to(StreamReaderFactoryImpl.class);
 		bind(TagRecogniser.class).to(
 				TagRecogniserImpl.class).in(Singleton.class);
-		bind(ConnectionRegistry.class).to(
-				ConnectionRegistryImpl.class).in(Singleton.class);;
-				bind(StreamWriterFactory.class).to(
-						StreamWriterFactoryImpl.class);
+		bind(StreamWriterFactory.class).to(StreamWriterFactoryImpl.class);
 	}
 
 	@Provides @Singleton
diff --git a/briar-tests/build.xml b/briar-tests/build.xml
index 88c573a8b1c528153ebfb572afb7d03fc257bcef..d5662702c2f3be8c6f39d1ab6ce93282bee4ca3e 100644
--- a/briar-tests/build.xml
+++ b/briar-tests/build.xml
@@ -113,6 +113,7 @@
 			<test name='org.briarproject.messaging.PacketReaderImplTest'/>
 			<test name='org.briarproject.messaging.SimplexMessagingIntegrationTest'/>
 			<test name='org.briarproject.messaging.SinglePassOutgoingSessionTest'/>
+			<test name='org.briarproject.plugins.ConnectionRegistryImplTest'/>
 			<test name='org.briarproject.plugins.PluginManagerImplTest'/>
 			<test name='org.briarproject.plugins.file.LinuxRemovableDriveFinderTest'/>
 			<test name='org.briarproject.plugins.file.MacRemovableDriveFinderTest'/>
@@ -125,7 +126,6 @@
 			<test name='org.briarproject.serial.ReaderImplTest'/>
 			<test name='org.briarproject.serial.WriterImplTest'/>
 			<test name='org.briarproject.system.LinuxSeedProviderTest'/>
-			<test name='org.briarproject.transport.ConnectionRegistryImplTest'/>
 			<test name='org.briarproject.transport.IncomingEncryptionLayerTest'/>
 			<test name='org.briarproject.transport.KeyManagerImplTest'/>
 			<test name='org.briarproject.transport.KeyRotationIntegrationTest'/>
diff --git a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
index 6165c9c164efe21feceaf02b6ed29c85ea94e445..cebd634d4d63631403419599edaf4a15af47edd3 100644
--- a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
+++ b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
@@ -7,7 +7,6 @@ import static org.junit.Assert.assertArrayEquals;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -45,7 +44,6 @@ import org.briarproject.crypto.CryptoModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
 import org.briarproject.messaging.MessagingModule;
-import org.briarproject.reliability.ReliabilityModule;
 import org.briarproject.serial.SerialModule;
 import org.briarproject.transport.TransportModule;
 import org.junit.Test;
@@ -77,9 +75,8 @@ public class ProtocolIntegrationTest extends BriarTestCase {
 	public ProtocolIntegrationTest() throws Exception {
 		Injector i = Guice.createInjector(new TestDatabaseModule(),
 				new TestLifecycleModule(), new TestSystemModule(),
-				new TestUiModule(), new CryptoModule(), new DatabaseModule(),
-				new EventModule(), new MessagingModule(),
-				new ReliabilityModule(), new SerialModule(),
+				new CryptoModule(), new DatabaseModule(), new EventModule(),
+				new MessagingModule(), new SerialModule(),
 				new TransportModule());
 		streamReaderFactory = i.getInstance(StreamReaderFactory.class);
 		streamWriterFactory = i.getInstance(StreamWriterFactory.class);
@@ -124,9 +121,8 @@ public class ProtocolIntegrationTest extends BriarTestCase {
 				secret.clone(), 0, true);
 		StreamWriter streamWriter = streamWriterFactory.createStreamWriter(out,
 				MAX_FRAME_LENGTH, ctx);
-		OutputStream out1 = streamWriter.getOutputStream();
-		PacketWriter packetWriter =
-				packetWriterFactory.createPacketWriter(out1);
+		PacketWriter packetWriter = packetWriterFactory.createPacketWriter(
+				streamWriter.getOutputStream());
 
 		packetWriter.writeAck(new Ack(messageIds));
 
@@ -144,7 +140,7 @@ public class ProtocolIntegrationTest extends BriarTestCase {
 				transportProperties, 1);
 		packetWriter.writeTransportUpdate(tu);
 
-		out1.flush();
+		streamWriter.getOutputStream().flush();
 		return out.toByteArray();
 	}
 
@@ -157,8 +153,8 @@ public class ProtocolIntegrationTest extends BriarTestCase {
 				secret.clone(), 0, false);
 		StreamReader streamReader = streamReaderFactory.createStreamReader(in,
 				MAX_FRAME_LENGTH, ctx);
-		InputStream in1 = streamReader.getInputStream();
-		PacketReader packetReader = packetReaderFactory.createPacketReader(in1);
+		PacketReader packetReader = packetReaderFactory.createPacketReader(
+				streamReader.getInputStream());
 
 		// Read the ack
 		assertTrue(packetReader.hasAck());
diff --git a/briar-tests/src/org/briarproject/TestUiModule.java b/briar-tests/src/org/briarproject/TestUiModule.java
deleted file mode 100644
index d6c719c1e4056f811bb76ad94091d33f5557dec1..0000000000000000000000000000000000000000
--- a/briar-tests/src/org/briarproject/TestUiModule.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.briarproject;
-
-import org.briarproject.api.ui.UiCallback;
-
-import com.google.inject.AbstractModule;
-
-public class TestUiModule extends AbstractModule {
-
-	protected void configure() {
-		bind(UiCallback.class).toInstance(new UiCallback() {
-
-			public int showChoice(String[] options, String... message) {
-				return -1;
-			}
-
-			public boolean showConfirmationMessage(String... message) {
-				return false;
-			}
-
-			public void showMessage(String... message) {}			
-		});
-	}
-}
diff --git a/briar-tests/src/org/briarproject/messaging/ConstantsTest.java b/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
index 785ee0e3c35a282d14b9556b24ef55d5082d52cf..300190d1f338e7c6d9dd97ec2123e4dbc5a64dc5 100644
--- a/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
+++ b/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
@@ -47,7 +47,6 @@ import org.briarproject.crypto.CryptoModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
 import org.briarproject.serial.SerialModule;
-import org.briarproject.transport.TransportModule;
 import org.junit.Test;
 
 import com.google.inject.Guice;
@@ -65,8 +64,7 @@ public class ConstantsTest extends BriarTestCase {
 		Injector i = Guice.createInjector(new TestDatabaseModule(),
 				new TestLifecycleModule(), new TestSystemModule(),
 				new CryptoModule(), new DatabaseModule(), new EventModule(),
-				new MessagingModule(), new SerialModule(),
-				new TransportModule());
+				new MessagingModule(), new SerialModule());
 		crypto = i.getInstance(CryptoComponent.class);
 		groupFactory = i.getInstance(GroupFactory.class);
 		authorFactory = i.getInstance(AuthorFactory.class);
diff --git a/briar-tests/src/org/briarproject/messaging/SinglePassOutgoingSessionTest.java b/briar-tests/src/org/briarproject/messaging/SinglePassOutgoingSessionTest.java
index 80d0b2524bda11df58d22e27449921cbef952a32..ca4ea3db20aa34c3a3b2734dff5f195f466d4646 100644
--- a/briar-tests/src/org/briarproject/messaging/SinglePassOutgoingSessionTest.java
+++ b/briar-tests/src/org/briarproject/messaging/SinglePassOutgoingSessionTest.java
@@ -21,7 +21,6 @@ import org.briarproject.api.messaging.PacketWriterFactory;
 import org.briarproject.crypto.CryptoModule;
 import org.briarproject.event.EventModule;
 import org.briarproject.serial.SerialModule;
-import org.briarproject.transport.TransportModule;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 import org.junit.Test;
@@ -58,7 +57,7 @@ public class SinglePassOutgoingSessionTest extends BriarTestCase {
 		Injector i = Guice.createInjector(testModule,
 				new TestLifecycleModule(), new TestSystemModule(),
 				new CryptoModule(), new EventModule(), new MessagingModule(),
-				new SerialModule(), new TransportModule());
+				new SerialModule());
 		packetWriterFactory = i.getInstance(PacketWriterFactory.class);
 		contactId = new ContactId(234);
 		messageId = new MessageId(TestUtils.getRandomId());
diff --git a/briar-tests/src/org/briarproject/transport/ConnectionRegistryImplTest.java b/briar-tests/src/org/briarproject/plugins/ConnectionRegistryImplTest.java
similarity index 95%
rename from briar-tests/src/org/briarproject/transport/ConnectionRegistryImplTest.java
rename to briar-tests/src/org/briarproject/plugins/ConnectionRegistryImplTest.java
index 58a12f437ff273a50e317d7856cad4b36f740fd5..08fd4942c2745a4749edec07195f8a844ed94ac1 100644
--- a/briar-tests/src/org/briarproject/transport/ConnectionRegistryImplTest.java
+++ b/briar-tests/src/org/briarproject/plugins/ConnectionRegistryImplTest.java
@@ -1,4 +1,4 @@
-package org.briarproject.transport;
+package org.briarproject.plugins;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -10,7 +10,8 @@ import org.briarproject.api.TransportId;
 import org.briarproject.api.event.ContactConnectedEvent;
 import org.briarproject.api.event.ContactDisconnectedEvent;
 import org.briarproject.api.event.EventBus;
-import org.briarproject.api.transport.ConnectionRegistry;
+import org.briarproject.api.plugins.ConnectionRegistry;
+import org.briarproject.plugins.ConnectionRegistryImpl;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 import org.junit.Test;
diff --git a/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java b/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java
index 43fcc4e9fdef26af36c74979487f5b9a1f8f0dc3..ce87c9720a534c5cc63c2556da1296b7017878f4 100644
--- a/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java
+++ b/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java
@@ -7,6 +7,7 @@ import java.util.concurrent.Executors;
 import org.briarproject.BriarTestCase;
 import org.briarproject.api.TransportId;
 import org.briarproject.api.db.DatabaseComponent;
+import org.briarproject.api.plugins.ConnectionDispatcher;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexPluginCallback;
 import org.briarproject.api.plugins.duplex.DuplexPluginConfig;
@@ -16,7 +17,6 @@ import org.briarproject.api.plugins.simplex.SimplexPluginCallback;
 import org.briarproject.api.plugins.simplex.SimplexPluginConfig;
 import org.briarproject.api.plugins.simplex.SimplexPluginFactory;
 import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.ConnectionDispatcher;
 import org.briarproject.api.ui.UiCallback;
 import org.briarproject.system.SystemClock;
 import org.jmock.Expectations;