diff --git a/briar-android/.classpath b/briar-android/.classpath
index 3138a7c24..33324c415 100644
--- a/briar-android/.classpath
+++ b/briar-android/.classpath
@@ -5,6 +5,7 @@
-
+
+
diff --git a/briar-api/.classpath b/briar-api/.classpath
new file mode 100644
index 000000000..4acf191a4
--- /dev/null
+++ b/briar-api/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/briar-api/.gitignore b/briar-api/.gitignore
new file mode 100644
index 000000000..c74591937
--- /dev/null
+++ b/briar-api/.gitignore
@@ -0,0 +1,2 @@
+bin
+build
diff --git a/briar-api/.project b/briar-api/.project
new file mode 100644
index 000000000..f57548523
--- /dev/null
+++ b/briar-api/.project
@@ -0,0 +1,17 @@
+
+
+ briar-api
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/briar-core/android.jar b/briar-api/libs/android.jar
similarity index 100%
rename from briar-core/android.jar
rename to briar-api/libs/android.jar
diff --git a/briar-core/libs/guice-3.0-no_aop.jar b/briar-api/libs/guice-3.0-no_aop.jar
similarity index 100%
rename from briar-core/libs/guice-3.0-no_aop.jar
rename to briar-api/libs/guice-3.0-no_aop.jar
diff --git a/briar-api/src/build.xml b/briar-api/src/build.xml
new file mode 100644
index 000000000..6a35e126b
--- /dev/null
+++ b/briar-api/src/build.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/briar-core/src/net/sf/briar/api/Bytes.java b/briar-api/src/net/sf/briar/api/Bytes.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/Bytes.java
rename to briar-api/src/net/sf/briar/api/Bytes.java
diff --git a/briar-core/src/net/sf/briar/api/ContactId.java b/briar-api/src/net/sf/briar/api/ContactId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/ContactId.java
rename to briar-api/src/net/sf/briar/api/ContactId.java
diff --git a/briar-core/src/net/sf/briar/api/FormatException.java b/briar-api/src/net/sf/briar/api/FormatException.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/FormatException.java
rename to briar-api/src/net/sf/briar/api/FormatException.java
diff --git a/briar-core/src/net/sf/briar/api/Rating.java b/briar-api/src/net/sf/briar/api/Rating.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/Rating.java
rename to briar-api/src/net/sf/briar/api/Rating.java
diff --git a/briar-core/src/net/sf/briar/api/TransportConfig.java b/briar-api/src/net/sf/briar/api/TransportConfig.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/TransportConfig.java
rename to briar-api/src/net/sf/briar/api/TransportConfig.java
diff --git a/briar-core/src/net/sf/briar/api/TransportProperties.java b/briar-api/src/net/sf/briar/api/TransportProperties.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/TransportProperties.java
rename to briar-api/src/net/sf/briar/api/TransportProperties.java
diff --git a/briar-core/src/net/sf/briar/api/android/AndroidExecutor.java b/briar-api/src/net/sf/briar/api/android/AndroidExecutor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/android/AndroidExecutor.java
rename to briar-api/src/net/sf/briar/api/android/AndroidExecutor.java
diff --git a/briar-core/src/net/sf/briar/api/clock/Clock.java b/briar-api/src/net/sf/briar/api/clock/Clock.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/clock/Clock.java
rename to briar-api/src/net/sf/briar/api/clock/Clock.java
diff --git a/briar-core/src/net/sf/briar/api/clock/SystemClock.java b/briar-api/src/net/sf/briar/api/clock/SystemClock.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/clock/SystemClock.java
rename to briar-api/src/net/sf/briar/api/clock/SystemClock.java
diff --git a/briar-core/src/net/sf/briar/api/clock/SystemTimer.java b/briar-api/src/net/sf/briar/api/clock/SystemTimer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/clock/SystemTimer.java
rename to briar-api/src/net/sf/briar/api/clock/SystemTimer.java
diff --git a/briar-core/src/net/sf/briar/api/clock/Timer.java b/briar-api/src/net/sf/briar/api/clock/Timer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/clock/Timer.java
rename to briar-api/src/net/sf/briar/api/clock/Timer.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/AuthenticatedCipher.java b/briar-api/src/net/sf/briar/api/crypto/AuthenticatedCipher.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/AuthenticatedCipher.java
rename to briar-api/src/net/sf/briar/api/crypto/AuthenticatedCipher.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/CryptoComponent.java b/briar-api/src/net/sf/briar/api/crypto/CryptoComponent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/CryptoComponent.java
rename to briar-api/src/net/sf/briar/api/crypto/CryptoComponent.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/ErasableKey.java b/briar-api/src/net/sf/briar/api/crypto/ErasableKey.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/ErasableKey.java
rename to briar-api/src/net/sf/briar/api/crypto/ErasableKey.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/KeyManager.java b/briar-api/src/net/sf/briar/api/crypto/KeyManager.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/KeyManager.java
rename to briar-api/src/net/sf/briar/api/crypto/KeyManager.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/KeyParser.java b/briar-api/src/net/sf/briar/api/crypto/KeyParser.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/KeyParser.java
rename to briar-api/src/net/sf/briar/api/crypto/KeyParser.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/MessageDigest.java b/briar-api/src/net/sf/briar/api/crypto/MessageDigest.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/MessageDigest.java
rename to briar-api/src/net/sf/briar/api/crypto/MessageDigest.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/Password.java b/briar-api/src/net/sf/briar/api/crypto/Password.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/Password.java
rename to briar-api/src/net/sf/briar/api/crypto/Password.java
diff --git a/briar-core/src/net/sf/briar/api/crypto/PseudoRandom.java b/briar-api/src/net/sf/briar/api/crypto/PseudoRandom.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/crypto/PseudoRandom.java
rename to briar-api/src/net/sf/briar/api/crypto/PseudoRandom.java
diff --git a/briar-core/src/net/sf/briar/api/db/DatabaseComponent.java b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/DatabaseComponent.java
rename to briar-api/src/net/sf/briar/api/db/DatabaseComponent.java
diff --git a/briar-core/src/net/sf/briar/api/db/DatabaseConfig.java b/briar-api/src/net/sf/briar/api/db/DatabaseConfig.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/DatabaseConfig.java
rename to briar-api/src/net/sf/briar/api/db/DatabaseConfig.java
diff --git a/briar-core/src/net/sf/briar/api/db/DatabaseExecutor.java b/briar-api/src/net/sf/briar/api/db/DatabaseExecutor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/DatabaseExecutor.java
rename to briar-api/src/net/sf/briar/api/db/DatabaseExecutor.java
diff --git a/briar-core/src/net/sf/briar/api/db/DbClosedException.java b/briar-api/src/net/sf/briar/api/db/DbClosedException.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/DbClosedException.java
rename to briar-api/src/net/sf/briar/api/db/DbClosedException.java
diff --git a/briar-core/src/net/sf/briar/api/db/DbException.java b/briar-api/src/net/sf/briar/api/db/DbException.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/DbException.java
rename to briar-api/src/net/sf/briar/api/db/DbException.java
diff --git a/briar-core/src/net/sf/briar/api/db/MessageHeader.java b/briar-api/src/net/sf/briar/api/db/MessageHeader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/MessageHeader.java
rename to briar-api/src/net/sf/briar/api/db/MessageHeader.java
diff --git a/briar-core/src/net/sf/briar/api/db/NoSuchContactException.java b/briar-api/src/net/sf/briar/api/db/NoSuchContactException.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/NoSuchContactException.java
rename to briar-api/src/net/sf/briar/api/db/NoSuchContactException.java
diff --git a/briar-core/src/net/sf/briar/api/db/NoSuchContactTransportException.java b/briar-api/src/net/sf/briar/api/db/NoSuchContactTransportException.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/NoSuchContactTransportException.java
rename to briar-api/src/net/sf/briar/api/db/NoSuchContactTransportException.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/BatchReceivedEvent.java b/briar-api/src/net/sf/briar/api/db/event/BatchReceivedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/BatchReceivedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/BatchReceivedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/ContactAddedEvent.java b/briar-api/src/net/sf/briar/api/db/event/ContactAddedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/ContactAddedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/ContactAddedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/ContactRemovedEvent.java b/briar-api/src/net/sf/briar/api/db/event/ContactRemovedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/ContactRemovedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/ContactRemovedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/DatabaseEvent.java b/briar-api/src/net/sf/briar/api/db/event/DatabaseEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/DatabaseEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/DatabaseEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/DatabaseListener.java b/briar-api/src/net/sf/briar/api/db/event/DatabaseListener.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/DatabaseListener.java
rename to briar-api/src/net/sf/briar/api/db/event/DatabaseListener.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java b/briar-api/src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/MessagesAddedEvent.java b/briar-api/src/net/sf/briar/api/db/event/MessagesAddedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/MessagesAddedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/MessagesAddedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/RatingChangedEvent.java b/briar-api/src/net/sf/briar/api/db/event/RatingChangedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/RatingChangedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/RatingChangedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java b/briar-api/src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java b/briar-api/src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
rename to briar-api/src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
diff --git a/briar-core/src/net/sf/briar/api/invitation/InvitationListener.java b/briar-api/src/net/sf/briar/api/invitation/InvitationListener.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/invitation/InvitationListener.java
rename to briar-api/src/net/sf/briar/api/invitation/InvitationListener.java
diff --git a/briar-core/src/net/sf/briar/api/invitation/InvitationManager.java b/briar-api/src/net/sf/briar/api/invitation/InvitationManager.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/invitation/InvitationManager.java
rename to briar-api/src/net/sf/briar/api/invitation/InvitationManager.java
diff --git a/briar-core/src/net/sf/briar/api/invitation/InvitationState.java b/briar-api/src/net/sf/briar/api/invitation/InvitationState.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/invitation/InvitationState.java
rename to briar-api/src/net/sf/briar/api/invitation/InvitationState.java
diff --git a/briar-core/src/net/sf/briar/api/invitation/InvitationTask.java b/briar-api/src/net/sf/briar/api/invitation/InvitationTask.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/invitation/InvitationTask.java
rename to briar-api/src/net/sf/briar/api/invitation/InvitationTask.java
diff --git a/briar-core/src/net/sf/briar/api/lifecycle/ShutdownManager.java b/briar-api/src/net/sf/briar/api/lifecycle/ShutdownManager.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/lifecycle/ShutdownManager.java
rename to briar-api/src/net/sf/briar/api/lifecycle/ShutdownManager.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/InvitationConstants.java b/briar-api/src/net/sf/briar/api/plugins/InvitationConstants.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/InvitationConstants.java
rename to briar-api/src/net/sf/briar/api/plugins/InvitationConstants.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/Plugin.java b/briar-api/src/net/sf/briar/api/plugins/Plugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/Plugin.java
rename to briar-api/src/net/sf/briar/api/plugins/Plugin.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/PluginCallback.java b/briar-api/src/net/sf/briar/api/plugins/PluginCallback.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/PluginCallback.java
rename to briar-api/src/net/sf/briar/api/plugins/PluginCallback.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/PluginExecutor.java b/briar-api/src/net/sf/briar/api/plugins/PluginExecutor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/PluginExecutor.java
rename to briar-api/src/net/sf/briar/api/plugins/PluginExecutor.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/PluginManager.java b/briar-api/src/net/sf/briar/api/plugins/PluginManager.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/PluginManager.java
rename to briar-api/src/net/sf/briar/api/plugins/PluginManager.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java b/briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
rename to briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java b/briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
rename to briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java b/briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
rename to briar-api/src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java b/briar-api/src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
rename to briar-api/src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java b/briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
rename to briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java b/briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
rename to briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java b/briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
rename to briar-api/src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java b/briar-api/src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
rename to briar-api/src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
diff --git a/briar-core/src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java b/briar-api/src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
rename to briar-api/src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Ack.java b/briar-api/src/net/sf/briar/api/protocol/Ack.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Ack.java
rename to briar-api/src/net/sf/briar/api/protocol/Ack.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Author.java b/briar-api/src/net/sf/briar/api/protocol/Author.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Author.java
rename to briar-api/src/net/sf/briar/api/protocol/Author.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/AuthorFactory.java b/briar-api/src/net/sf/briar/api/protocol/AuthorFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/AuthorFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/AuthorFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/AuthorId.java b/briar-api/src/net/sf/briar/api/protocol/AuthorId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/AuthorId.java
rename to briar-api/src/net/sf/briar/api/protocol/AuthorId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Batch.java b/briar-api/src/net/sf/briar/api/protocol/Batch.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Batch.java
rename to briar-api/src/net/sf/briar/api/protocol/Batch.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/BatchId.java b/briar-api/src/net/sf/briar/api/protocol/BatchId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/BatchId.java
rename to briar-api/src/net/sf/briar/api/protocol/BatchId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Group.java b/briar-api/src/net/sf/briar/api/protocol/Group.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Group.java
rename to briar-api/src/net/sf/briar/api/protocol/Group.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/GroupFactory.java b/briar-api/src/net/sf/briar/api/protocol/GroupFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/GroupFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/GroupFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/GroupId.java b/briar-api/src/net/sf/briar/api/protocol/GroupId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/GroupId.java
rename to briar-api/src/net/sf/briar/api/protocol/GroupId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Message.java b/briar-api/src/net/sf/briar/api/protocol/Message.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Message.java
rename to briar-api/src/net/sf/briar/api/protocol/Message.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/MessageFactory.java b/briar-api/src/net/sf/briar/api/protocol/MessageFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/MessageFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/MessageFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/MessageId.java b/briar-api/src/net/sf/briar/api/protocol/MessageId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/MessageId.java
rename to briar-api/src/net/sf/briar/api/protocol/MessageId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Offer.java b/briar-api/src/net/sf/briar/api/protocol/Offer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Offer.java
rename to briar-api/src/net/sf/briar/api/protocol/Offer.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/PacketFactory.java b/briar-api/src/net/sf/briar/api/protocol/PacketFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/PacketFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/PacketFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/ProtocolConstants.java b/briar-api/src/net/sf/briar/api/protocol/ProtocolConstants.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/ProtocolConstants.java
rename to briar-api/src/net/sf/briar/api/protocol/ProtocolConstants.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/ProtocolReader.java b/briar-api/src/net/sf/briar/api/protocol/ProtocolReader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/ProtocolReader.java
rename to briar-api/src/net/sf/briar/api/protocol/ProtocolReader.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/ProtocolReaderFactory.java b/briar-api/src/net/sf/briar/api/protocol/ProtocolReaderFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/ProtocolReaderFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/ProtocolReaderFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/ProtocolWriter.java b/briar-api/src/net/sf/briar/api/protocol/ProtocolWriter.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/ProtocolWriter.java
rename to briar-api/src/net/sf/briar/api/protocol/ProtocolWriter.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/ProtocolWriterFactory.java b/briar-api/src/net/sf/briar/api/protocol/ProtocolWriterFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/ProtocolWriterFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/ProtocolWriterFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/RawBatch.java b/briar-api/src/net/sf/briar/api/protocol/RawBatch.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/RawBatch.java
rename to briar-api/src/net/sf/briar/api/protocol/RawBatch.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Request.java b/briar-api/src/net/sf/briar/api/protocol/Request.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Request.java
rename to briar-api/src/net/sf/briar/api/protocol/Request.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/SubscriptionUpdate.java b/briar-api/src/net/sf/briar/api/protocol/SubscriptionUpdate.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/SubscriptionUpdate.java
rename to briar-api/src/net/sf/briar/api/protocol/SubscriptionUpdate.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Transport.java b/briar-api/src/net/sf/briar/api/protocol/Transport.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Transport.java
rename to briar-api/src/net/sf/briar/api/protocol/Transport.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/TransportId.java b/briar-api/src/net/sf/briar/api/protocol/TransportId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/TransportId.java
rename to briar-api/src/net/sf/briar/api/protocol/TransportId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/TransportUpdate.java b/briar-api/src/net/sf/briar/api/protocol/TransportUpdate.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/TransportUpdate.java
rename to briar-api/src/net/sf/briar/api/protocol/TransportUpdate.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/Types.java b/briar-api/src/net/sf/briar/api/protocol/Types.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/Types.java
rename to briar-api/src/net/sf/briar/api/protocol/Types.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/UniqueId.java b/briar-api/src/net/sf/briar/api/protocol/UniqueId.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/UniqueId.java
rename to briar-api/src/net/sf/briar/api/protocol/UniqueId.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/UnverifiedBatch.java b/briar-api/src/net/sf/briar/api/protocol/UnverifiedBatch.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/UnverifiedBatch.java
rename to briar-api/src/net/sf/briar/api/protocol/UnverifiedBatch.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/VerificationExecutor.java b/briar-api/src/net/sf/briar/api/protocol/VerificationExecutor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/VerificationExecutor.java
rename to briar-api/src/net/sf/briar/api/protocol/VerificationExecutor.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java b/briar-api/src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
diff --git a/briar-core/src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java b/briar-api/src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
rename to briar-api/src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
diff --git a/briar-core/src/net/sf/briar/api/serial/Consumer.java b/briar-api/src/net/sf/briar/api/serial/Consumer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/Consumer.java
rename to briar-api/src/net/sf/briar/api/serial/Consumer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/CopyingConsumer.java b/briar-api/src/net/sf/briar/api/serial/CopyingConsumer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/CopyingConsumer.java
rename to briar-api/src/net/sf/briar/api/serial/CopyingConsumer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/CountingConsumer.java b/briar-api/src/net/sf/briar/api/serial/CountingConsumer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/CountingConsumer.java
rename to briar-api/src/net/sf/briar/api/serial/CountingConsumer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/DigestingConsumer.java b/briar-api/src/net/sf/briar/api/serial/DigestingConsumer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/DigestingConsumer.java
rename to briar-api/src/net/sf/briar/api/serial/DigestingConsumer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/Reader.java b/briar-api/src/net/sf/briar/api/serial/Reader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/Reader.java
rename to briar-api/src/net/sf/briar/api/serial/Reader.java
diff --git a/briar-core/src/net/sf/briar/api/serial/ReaderFactory.java b/briar-api/src/net/sf/briar/api/serial/ReaderFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/ReaderFactory.java
rename to briar-api/src/net/sf/briar/api/serial/ReaderFactory.java
diff --git a/briar-core/src/net/sf/briar/api/serial/SerialComponent.java b/briar-api/src/net/sf/briar/api/serial/SerialComponent.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/SerialComponent.java
rename to briar-api/src/net/sf/briar/api/serial/SerialComponent.java
diff --git a/briar-core/src/net/sf/briar/api/serial/SigningConsumer.java b/briar-api/src/net/sf/briar/api/serial/SigningConsumer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/SigningConsumer.java
rename to briar-api/src/net/sf/briar/api/serial/SigningConsumer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/StructReader.java b/briar-api/src/net/sf/briar/api/serial/StructReader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/StructReader.java
rename to briar-api/src/net/sf/briar/api/serial/StructReader.java
diff --git a/briar-core/src/net/sf/briar/api/serial/Writer.java b/briar-api/src/net/sf/briar/api/serial/Writer.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/Writer.java
rename to briar-api/src/net/sf/briar/api/serial/Writer.java
diff --git a/briar-core/src/net/sf/briar/api/serial/WriterFactory.java b/briar-api/src/net/sf/briar/api/serial/WriterFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/serial/WriterFactory.java
rename to briar-api/src/net/sf/briar/api/serial/WriterFactory.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionContext.java b/briar-api/src/net/sf/briar/api/transport/ConnectionContext.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionContext.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionContext.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionDispatcher.java b/briar-api/src/net/sf/briar/api/transport/ConnectionDispatcher.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionDispatcher.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionDispatcher.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionReader.java b/briar-api/src/net/sf/briar/api/transport/ConnectionReader.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionReader.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionReader.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionReaderFactory.java b/briar-api/src/net/sf/briar/api/transport/ConnectionReaderFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionReaderFactory.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionReaderFactory.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionRecogniser.java b/briar-api/src/net/sf/briar/api/transport/ConnectionRecogniser.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionRecogniser.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionRecogniser.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionRegistry.java b/briar-api/src/net/sf/briar/api/transport/ConnectionRegistry.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionRegistry.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionRegistry.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionWriter.java b/briar-api/src/net/sf/briar/api/transport/ConnectionWriter.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionWriter.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionWriter.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ConnectionWriterFactory.java b/briar-api/src/net/sf/briar/api/transport/ConnectionWriterFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ConnectionWriterFactory.java
rename to briar-api/src/net/sf/briar/api/transport/ConnectionWriterFactory.java
diff --git a/briar-core/src/net/sf/briar/api/transport/ContactTransport.java b/briar-api/src/net/sf/briar/api/transport/ContactTransport.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/ContactTransport.java
rename to briar-api/src/net/sf/briar/api/transport/ContactTransport.java
diff --git a/briar-core/src/net/sf/briar/api/transport/IncomingConnectionExecutor.java b/briar-api/src/net/sf/briar/api/transport/IncomingConnectionExecutor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/IncomingConnectionExecutor.java
rename to briar-api/src/net/sf/briar/api/transport/IncomingConnectionExecutor.java
diff --git a/briar-core/src/net/sf/briar/api/transport/TemporarySecret.java b/briar-api/src/net/sf/briar/api/transport/TemporarySecret.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/TemporarySecret.java
rename to briar-api/src/net/sf/briar/api/transport/TemporarySecret.java
diff --git a/briar-core/src/net/sf/briar/api/transport/TransportConstants.java b/briar-api/src/net/sf/briar/api/transport/TransportConstants.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/transport/TransportConstants.java
rename to briar-api/src/net/sf/briar/api/transport/TransportConstants.java
diff --git a/briar-core/src/net/sf/briar/api/ui/UiCallback.java b/briar-api/src/net/sf/briar/api/ui/UiCallback.java
similarity index 100%
rename from briar-core/src/net/sf/briar/api/ui/UiCallback.java
rename to briar-api/src/net/sf/briar/api/ui/UiCallback.java
diff --git a/briar-core/.classpath b/briar-core/.classpath
index eca48f30c..bbf51efe8 100644
--- a/briar-core/.classpath
+++ b/briar-core/.classpath
@@ -6,7 +6,6 @@
-
@@ -18,6 +17,8 @@
-
+
+
+
diff --git a/briar-core/.gitignore b/briar-core/.gitignore
new file mode 100644
index 000000000..c74591937
--- /dev/null
+++ b/briar-core/.gitignore
@@ -0,0 +1,2 @@
+bin
+build
diff --git a/briar-core/src/build.xml b/briar-core/src/build.xml
index 5556a5ca8..00e8dff14 100644
--- a/briar-core/src/build.xml
+++ b/briar-core/src/build.xml
@@ -1,24 +1,33 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/briar-tests/.classpath b/briar-tests/.classpath
index 507f9dff5..b9e40f98d 100644
--- a/briar-tests/.classpath
+++ b/briar-tests/.classpath
@@ -6,10 +6,11 @@
+
+
+
-
-
diff --git a/briar-tests/.gitignore b/briar-tests/.gitignore
index ba077a403..c74591937 100644
--- a/briar-tests/.gitignore
+++ b/briar-tests/.gitignore
@@ -1 +1,2 @@
bin
+build
diff --git a/briar-tests/src/build.xml b/briar-tests/src/build.xml
index f0bea9546..a0407dad4 100644
--- a/briar-tests/src/build.xml
+++ b/briar-tests/src/build.xml
@@ -1,12 +1,15 @@
-
+
+
+
+
-
-
+
+
@@ -15,30 +18,39 @@
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
@@ -48,10 +60,12 @@
-
-
+
+
+
+
@@ -105,10 +119,12 @@
-
-
+
+
+
+