diff --git a/.classpath b/.classpath
index 3eabaaea9b045347980e5be1f79fb6539e1a181e..b26daeb598d0a54f1bf6466a2b570c4b3a41ecb4 100644
--- a/.classpath
+++ b/.classpath
@@ -1,28 +1,26 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding=".gitignore|build.xml" kind="src" path="api"/>
-	<classpathentry excluding=".gitignore|build.xml" kind="src" path="components"/>
-	<classpathentry kind="src" path="i18n"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry excluding=".gitignore|build.xml" kind="src" path="util"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="lib" path="lib/guice-3.0-no_aop.jar"/>
-	<classpathentry kind="lib" path="lib/javax.inject-1.jar"/>
-	<classpathentry kind="lib" path="lib/test/hamcrest-core-1.1.jar"/>
-	<classpathentry kind="lib" path="lib/test/hamcrest-library-1.1.jar"/>
-	<classpathentry kind="lib" path="lib/test/jmock-2.5.1.jar"/>
-	<classpathentry kind="lib" path="lib/commons-io-2.0.1.jar"/>
-	<classpathentry kind="lib" path="lib/test/junit-4.9b3.jar"/>
-	<classpathentry kind="lib" path="lib/jna.jar"/>
-	<classpathentry kind="lib" path="lib/platform.jar"/>
-	<classpathentry kind="lib" path="lib/jnotify-0.93.jar"/>
-	<classpathentry kind="lib" path="lib/bluecove-gpl-2.1.0.jar" sourcepath="lib/source/bluecove-gpl-2.1.0-sources.jar"/>
-	<classpathentry kind="lib" path="lib/bluecove-2.1.0-briar.jar" sourcepath="lib/source/bluecove-2.1.0-briar-sources.jar"/>
-	<classpathentry kind="lib" path="lib/h2small-1.3.161.jar"/>
-	<classpathentry kind="lib" path="lib/silvertunnel.org_netlib.jar"/>
-	<classpathentry kind="lib" path="lib/sc-light-jdk15on-20120824.jar" sourcepath="lib/source/sc-light-jdk15on-sources-20120824.jar"/>
-	<classpathentry kind="lib" path="lib/scprov-jdk15on-20120824.jar" sourcepath="lib/source/scprov-jdk15on-sources-20120824.jar"/>
-	<classpathentry kind="lib" path="lib/activation.jar"/>
-	<classpathentry kind="lib" path="lib/mail.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding=".gitignore|build.xml" kind="src" path="src"/>
+	<classpathentry kind="src" path="i18n"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="lib" path="libs/activation.jar"/>
+	<classpathentry kind="lib" path="libs/bluecove-2.1.0-briar.jar"/>
+	<classpathentry kind="lib" path="libs/bluecove-gpl-2.1.0.jar"/>
+	<classpathentry kind="lib" path="libs/commons-io-2.0.1.jar"/>
+	<classpathentry kind="lib" path="libs/guice-3.0-no_aop.jar"/>
+	<classpathentry kind="lib" path="libs/h2small-1.3.161.jar"/>
+	<classpathentry kind="lib" path="libs/javax.inject-1.jar"/>
+	<classpathentry kind="lib" path="libs/jna.jar"/>
+	<classpathentry kind="lib" path="libs/jnotify-0.93.jar"/>
+	<classpathentry kind="lib" path="libs/mail.jar"/>
+	<classpathentry kind="lib" path="libs/platform.jar"/>
+	<classpathentry kind="lib" path="libs/sc-light-jdk15on-20120824.jar"/>
+	<classpathentry kind="lib" path="libs/scprov-jdk15on-20120824.jar"/>
+	<classpathentry kind="lib" path="libs/silvertunnel.org_netlib.jar"/>
+	<classpathentry kind="lib" path="libs/test/hamcrest-core-1.1.jar"/>
+	<classpathentry kind="lib" path="libs/test/hamcrest-library-1.1.jar"/>
+	<classpathentry kind="lib" path="libs/test/jmock-2.5.1.jar"/>
+	<classpathentry kind="lib" path="libs/test/junit-4.9b3.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/build-common.xml b/build-common.xml
index 681fdb9a105be02cc5a47087ac0a33ac2dc637a8..07b3ace0741d51a990794ff1964815683d48bdc4 100644
--- a/build-common.xml
+++ b/build-common.xml
@@ -1,24 +1,18 @@
 <project name='build-common'>
 	<import file='dependencies.xml'/>
 	<dirname property='build-common.root' file='${ant.file.build-common}'/>
-	<fileset id='bundled-jars' dir='${build-common.root}/lib'>
+	<fileset id='bundled-jars' dir='${build-common.root}/libs'>
 		<include name='*.jar'/>
 	</fileset>
-	<fileset id='test-jars' dir='${build-common.root}/lib/test'>
+	<fileset id='test-jars' dir='${build-common.root}/libs/test'>
 		<include name='*.jar'/>
 	</fileset>
-	<path id='api-classes'>
-		<pathelement location='${build-common.root}/api/build'/>
-	</path>
-	<path id='component-classes'>
-		<pathelement location='${build-common.root}/components/build'/>
+	<path id='classes'>
+		<pathelement location='${build-common.root}/src/build'/>
 	</path>
 	<path id='test-classes'>
 		<pathelement location='${build-common.root}/test/build'/>
 	</path>
-	<path id='util-classes'>
-		<pathelement location='${build-common.root}/util/build'/>
-	</path>
 	<target name='clean'>
 		<delete dir='build'/>
 		<delete dir='test.tmp'/>
@@ -30,9 +24,7 @@
 			<classpath>
 				<fileset refid='bundled-jars'/>
 				<fileset refid='test-jars'/>
-				<path refid='api-classes'/>
-				<path refid='component-classes'/>
-				<path refid='util-classes'/>
+				<path refid='classes'/>
 			</classpath>
 		</javac>
 	</target>
diff --git a/build.xml b/build.xml
index 7c92d04543405b65cefbd220442294134ee16d41..a1b07b6f63658c9baa81090c7e7c73acc00818ea 100644
--- a/build.xml
+++ b/build.xml
@@ -7,10 +7,7 @@
 				<fileset refid='bundled-jars'/>
 			</classpath>
 			<fileset dir='.' defaultexcludes='yes'>
-				<include name='api/net/sf/briar/**'/>
-				<include name='components/net/sf/briar/**'/>
-				<include name='installer/net/sf/briar/**'/>
-				<include name='util/net/sf/briar/**'/>
+				<include name='src/net/sf/briar/**'/>
 			</fileset>
 		</javadoc>
 	</target>
diff --git a/components/.gitignore b/components/.gitignore
deleted file mode 100644
index 796b96d1c402326528b4ba3c12ee9d92d0e212e9..0000000000000000000000000000000000000000
--- a/components/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/components/build.xml b/components/build.xml
deleted file mode 100644
index 164882e389cd2e70e6ce9aed6a07d79ed13c633a..0000000000000000000000000000000000000000
--- a/components/build.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<project name='components' default='depend'>
-	<import file='../build-common.xml'/>
-</project>
diff --git a/dependencies.xml b/dependencies.xml
index db0e1d0104f05e519301f23a2aae44cbd87c1c7f..7eb615f82d22587c51a8cefe3294b865c8df01cd 100644
--- a/dependencies.xml
+++ b/dependencies.xml
@@ -1,39 +1,21 @@
 <project name='dependencies'>
 	<dirname property='depend.root' file='${ant.file.dependencies}'/>
-	<target name='depend.all' depends='depend.components'/>
-	<target name='depend.api'>
-		<ant dir='${depend.root}/api' target='compile'
+	<target name='depend.all' depends='depend.src'/>
+	<target name='depend.src'>
+		<ant dir='${depend.root}/src' target='compile'
 			inheritAll='false'/>
 	</target>
-	<target name='depend.components' depends='depend.api, depend.util'>
-		<ant dir='${depend.root}/components' target='compile'
-			inheritAll='false'/>
-	</target>
-	<target name='depend.test' depends='depend.components'>
+	<target name='depend.test' depends='depend.src'>
 		<ant dir='${depend.root}/test' target='compile'
 			inheritAll='false'/>
 	</target>
-	<target name='depend.util'>
-		<ant dir='${depend.root}/util' target='compile'
-			inheritAll='false'/>
-	</target>
-	<target name='depend-clean.all' depends='depend-clean.components'/>
-	<target name='depend-clean.api'>
-		<ant dir='${depend.root}/api' target='clean'
+	<target name='depend-clean.all' depends='depend-clean.src'/>
+	<target name='depend-clean.src'>
+		<ant dir='${depend.root}/src' target='clean'
 			inheritAll='false'/>
 	</target>
-	<target name='depend-clean.components'
-		depends='depend-clean.api, depend-clean.util'>
-		<ant dir='${depend.root}/components' target='clean'
-			inheritAll='false'/>
-	</target>
-	<target name='depend-clean.test'
-		depends='depend-clean.components'>
+	<target name='depend-clean.test' depends='depend-clean.src'>
 		<ant dir='${depend.root}/test' target='clean'
 			inheritAll='false'/>
 	</target>
-	<target name='depend-clean.util'>
-		<ant dir='${depend.root}/util' target='clean'
-			inheritAll='false'/>
-	</target>
 </project>
diff --git a/lib/installer.manifest b/installer.manifest
similarity index 100%
rename from lib/installer.manifest
rename to installer.manifest
diff --git a/lib/source/bluecove-2.1.0-briar-sources.jar b/lib/source/bluecove-2.1.0-briar-sources.jar
deleted file mode 100644
index ebb026c1be905bc070535becf3bb1142bcee1249..0000000000000000000000000000000000000000
Binary files a/lib/source/bluecove-2.1.0-briar-sources.jar and /dev/null differ
diff --git a/lib/source/bluecove-gpl-2.1.0-sources.jar b/lib/source/bluecove-gpl-2.1.0-sources.jar
deleted file mode 100644
index 8bc89a6b3aa5c930e085955859ac6e22ce40809b..0000000000000000000000000000000000000000
Binary files a/lib/source/bluecove-gpl-2.1.0-sources.jar and /dev/null differ
diff --git a/lib/source/sc-light-jdk15on-sources-20120824.jar b/lib/source/sc-light-jdk15on-sources-20120824.jar
deleted file mode 100644
index ba9b5ed95bcfd98e5858bf2cf2b7256de11bc98f..0000000000000000000000000000000000000000
Binary files a/lib/source/sc-light-jdk15on-sources-20120824.jar and /dev/null differ
diff --git a/lib/source/scprov-jdk15on-sources-20120824.jar b/lib/source/scprov-jdk15on-sources-20120824.jar
deleted file mode 100644
index 81982803a4741894470219ef5ca5c88e06b8a8a4..0000000000000000000000000000000000000000
Binary files a/lib/source/scprov-jdk15on-sources-20120824.jar and /dev/null differ
diff --git a/lib/activation.jar b/libs/activation.jar
similarity index 100%
rename from lib/activation.jar
rename to libs/activation.jar
diff --git a/lib/bluecove-2.1.0-briar.jar b/libs/bluecove-2.1.0-briar.jar
similarity index 100%
rename from lib/bluecove-2.1.0-briar.jar
rename to libs/bluecove-2.1.0-briar.jar
diff --git a/lib/bluecove-gpl-2.1.0.jar b/libs/bluecove-gpl-2.1.0.jar
similarity index 100%
rename from lib/bluecove-gpl-2.1.0.jar
rename to libs/bluecove-gpl-2.1.0.jar
diff --git a/lib/commons-io-2.0.1.jar b/libs/commons-io-2.0.1.jar
similarity index 100%
rename from lib/commons-io-2.0.1.jar
rename to libs/commons-io-2.0.1.jar
diff --git a/lib/guice-3.0-no_aop.jar b/libs/guice-3.0-no_aop.jar
similarity index 100%
rename from lib/guice-3.0-no_aop.jar
rename to libs/guice-3.0-no_aop.jar
diff --git a/lib/h2small-1.3.161.jar b/libs/h2small-1.3.161.jar
similarity index 100%
rename from lib/h2small-1.3.161.jar
rename to libs/h2small-1.3.161.jar
diff --git a/lib/javax.inject-1.jar b/libs/javax.inject-1.jar
similarity index 100%
rename from lib/javax.inject-1.jar
rename to libs/javax.inject-1.jar
diff --git a/lib/jna.jar b/libs/jna.jar
similarity index 100%
rename from lib/jna.jar
rename to libs/jna.jar
diff --git a/lib/jnotify-0.93.jar b/libs/jnotify-0.93.jar
similarity index 100%
rename from lib/jnotify-0.93.jar
rename to libs/jnotify-0.93.jar
diff --git a/lib/libjnotify.dylib b/libs/libjnotify.dylib
similarity index 100%
rename from lib/libjnotify.dylib
rename to libs/libjnotify.dylib
diff --git a/lib/libjnotify.so b/libs/libjnotify.so
similarity index 100%
rename from lib/libjnotify.so
rename to libs/libjnotify.so
diff --git a/lib/mail.jar b/libs/mail.jar
similarity index 100%
rename from lib/mail.jar
rename to libs/mail.jar
diff --git a/lib/platform.jar b/libs/platform.jar
similarity index 100%
rename from lib/platform.jar
rename to libs/platform.jar
diff --git a/lib/sc-light-jdk15on-20120824.jar b/libs/sc-light-jdk15on-20120824.jar
similarity index 100%
rename from lib/sc-light-jdk15on-20120824.jar
rename to libs/sc-light-jdk15on-20120824.jar
diff --git a/lib/scprov-jdk15on-20120824.jar b/libs/scprov-jdk15on-20120824.jar
similarity index 100%
rename from lib/scprov-jdk15on-20120824.jar
rename to libs/scprov-jdk15on-20120824.jar
diff --git a/lib/silvertunnel.org_netlib.jar b/libs/silvertunnel.org_netlib.jar
similarity index 100%
rename from lib/silvertunnel.org_netlib.jar
rename to libs/silvertunnel.org_netlib.jar
diff --git a/lib/test/hamcrest-core-1.1.jar b/libs/test/hamcrest-core-1.1.jar
similarity index 100%
rename from lib/test/hamcrest-core-1.1.jar
rename to libs/test/hamcrest-core-1.1.jar
diff --git a/lib/test/hamcrest-library-1.1.jar b/libs/test/hamcrest-library-1.1.jar
similarity index 100%
rename from lib/test/hamcrest-library-1.1.jar
rename to libs/test/hamcrest-library-1.1.jar
diff --git a/lib/test/jmock-2.5.1.jar b/libs/test/jmock-2.5.1.jar
similarity index 100%
rename from lib/test/jmock-2.5.1.jar
rename to libs/test/jmock-2.5.1.jar
diff --git a/lib/test/junit-4.9b3.jar b/libs/test/junit-4.9b3.jar
similarity index 100%
rename from lib/test/junit-4.9b3.jar
rename to libs/test/junit-4.9b3.jar
diff --git a/lib/setup.vbs b/setup.vbs
similarity index 100%
rename from lib/setup.vbs
rename to setup.vbs
diff --git a/api/.gitignore b/src/.gitignore
similarity index 100%
rename from api/.gitignore
rename to src/.gitignore
diff --git a/api/build.xml b/src/build.xml
similarity index 100%
rename from api/build.xml
rename to src/build.xml
diff --git a/api/net/sf/briar/api/Bytes.java b/src/net/sf/briar/api/Bytes.java
similarity index 100%
rename from api/net/sf/briar/api/Bytes.java
rename to src/net/sf/briar/api/Bytes.java
diff --git a/api/net/sf/briar/api/ContactId.java b/src/net/sf/briar/api/ContactId.java
similarity index 100%
rename from api/net/sf/briar/api/ContactId.java
rename to src/net/sf/briar/api/ContactId.java
diff --git a/api/net/sf/briar/api/FormatException.java b/src/net/sf/briar/api/FormatException.java
similarity index 100%
rename from api/net/sf/briar/api/FormatException.java
rename to src/net/sf/briar/api/FormatException.java
diff --git a/api/net/sf/briar/api/Rating.java b/src/net/sf/briar/api/Rating.java
similarity index 100%
rename from api/net/sf/briar/api/Rating.java
rename to src/net/sf/briar/api/Rating.java
diff --git a/api/net/sf/briar/api/TransportConfig.java b/src/net/sf/briar/api/TransportConfig.java
similarity index 100%
rename from api/net/sf/briar/api/TransportConfig.java
rename to src/net/sf/briar/api/TransportConfig.java
diff --git a/api/net/sf/briar/api/TransportProperties.java b/src/net/sf/briar/api/TransportProperties.java
similarity index 100%
rename from api/net/sf/briar/api/TransportProperties.java
rename to src/net/sf/briar/api/TransportProperties.java
diff --git a/api/net/sf/briar/api/clock/Clock.java b/src/net/sf/briar/api/clock/Clock.java
similarity index 100%
rename from api/net/sf/briar/api/clock/Clock.java
rename to src/net/sf/briar/api/clock/Clock.java
diff --git a/api/net/sf/briar/api/clock/SystemClock.java b/src/net/sf/briar/api/clock/SystemClock.java
similarity index 100%
rename from api/net/sf/briar/api/clock/SystemClock.java
rename to src/net/sf/briar/api/clock/SystemClock.java
diff --git a/api/net/sf/briar/api/crypto/AuthenticatedCipher.java b/src/net/sf/briar/api/crypto/AuthenticatedCipher.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/AuthenticatedCipher.java
rename to src/net/sf/briar/api/crypto/AuthenticatedCipher.java
diff --git a/api/net/sf/briar/api/crypto/CryptoComponent.java b/src/net/sf/briar/api/crypto/CryptoComponent.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/CryptoComponent.java
rename to src/net/sf/briar/api/crypto/CryptoComponent.java
diff --git a/api/net/sf/briar/api/crypto/ErasableKey.java b/src/net/sf/briar/api/crypto/ErasableKey.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/ErasableKey.java
rename to src/net/sf/briar/api/crypto/ErasableKey.java
diff --git a/api/net/sf/briar/api/crypto/KeyManager.java b/src/net/sf/briar/api/crypto/KeyManager.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/KeyManager.java
rename to src/net/sf/briar/api/crypto/KeyManager.java
diff --git a/api/net/sf/briar/api/crypto/KeyParser.java b/src/net/sf/briar/api/crypto/KeyParser.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/KeyParser.java
rename to src/net/sf/briar/api/crypto/KeyParser.java
diff --git a/api/net/sf/briar/api/crypto/MessageDigest.java b/src/net/sf/briar/api/crypto/MessageDigest.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/MessageDigest.java
rename to src/net/sf/briar/api/crypto/MessageDigest.java
diff --git a/api/net/sf/briar/api/crypto/Password.java b/src/net/sf/briar/api/crypto/Password.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/Password.java
rename to src/net/sf/briar/api/crypto/Password.java
diff --git a/api/net/sf/briar/api/crypto/PseudoRandom.java b/src/net/sf/briar/api/crypto/PseudoRandom.java
similarity index 100%
rename from api/net/sf/briar/api/crypto/PseudoRandom.java
rename to src/net/sf/briar/api/crypto/PseudoRandom.java
diff --git a/api/net/sf/briar/api/db/ContactTransport.java b/src/net/sf/briar/api/db/ContactTransport.java
similarity index 100%
rename from api/net/sf/briar/api/db/ContactTransport.java
rename to src/net/sf/briar/api/db/ContactTransport.java
diff --git a/api/net/sf/briar/api/db/DatabaseComponent.java b/src/net/sf/briar/api/db/DatabaseComponent.java
similarity index 100%
rename from api/net/sf/briar/api/db/DatabaseComponent.java
rename to src/net/sf/briar/api/db/DatabaseComponent.java
diff --git a/api/net/sf/briar/api/db/DatabaseDirectory.java b/src/net/sf/briar/api/db/DatabaseDirectory.java
similarity index 100%
rename from api/net/sf/briar/api/db/DatabaseDirectory.java
rename to src/net/sf/briar/api/db/DatabaseDirectory.java
diff --git a/api/net/sf/briar/api/db/DatabaseExecutor.java b/src/net/sf/briar/api/db/DatabaseExecutor.java
similarity index 100%
rename from api/net/sf/briar/api/db/DatabaseExecutor.java
rename to src/net/sf/briar/api/db/DatabaseExecutor.java
diff --git a/api/net/sf/briar/api/db/DatabaseMaxSize.java b/src/net/sf/briar/api/db/DatabaseMaxSize.java
similarity index 100%
rename from api/net/sf/briar/api/db/DatabaseMaxSize.java
rename to src/net/sf/briar/api/db/DatabaseMaxSize.java
diff --git a/api/net/sf/briar/api/db/DatabasePassword.java b/src/net/sf/briar/api/db/DatabasePassword.java
similarity index 100%
rename from api/net/sf/briar/api/db/DatabasePassword.java
rename to src/net/sf/briar/api/db/DatabasePassword.java
diff --git a/api/net/sf/briar/api/db/DbException.java b/src/net/sf/briar/api/db/DbException.java
similarity index 100%
rename from api/net/sf/briar/api/db/DbException.java
rename to src/net/sf/briar/api/db/DbException.java
diff --git a/api/net/sf/briar/api/db/MessageHeader.java b/src/net/sf/briar/api/db/MessageHeader.java
similarity index 100%
rename from api/net/sf/briar/api/db/MessageHeader.java
rename to src/net/sf/briar/api/db/MessageHeader.java
diff --git a/api/net/sf/briar/api/db/NoSuchContactException.java b/src/net/sf/briar/api/db/NoSuchContactException.java
similarity index 100%
rename from api/net/sf/briar/api/db/NoSuchContactException.java
rename to src/net/sf/briar/api/db/NoSuchContactException.java
diff --git a/api/net/sf/briar/api/db/NoSuchContactTransportException.java b/src/net/sf/briar/api/db/NoSuchContactTransportException.java
similarity index 100%
rename from api/net/sf/briar/api/db/NoSuchContactTransportException.java
rename to src/net/sf/briar/api/db/NoSuchContactTransportException.java
diff --git a/api/net/sf/briar/api/db/Status.java b/src/net/sf/briar/api/db/Status.java
similarity index 100%
rename from api/net/sf/briar/api/db/Status.java
rename to src/net/sf/briar/api/db/Status.java
diff --git a/api/net/sf/briar/api/db/TemporarySecret.java b/src/net/sf/briar/api/db/TemporarySecret.java
similarity index 100%
rename from api/net/sf/briar/api/db/TemporarySecret.java
rename to src/net/sf/briar/api/db/TemporarySecret.java
diff --git a/api/net/sf/briar/api/db/event/BatchReceivedEvent.java b/src/net/sf/briar/api/db/event/BatchReceivedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/BatchReceivedEvent.java
rename to src/net/sf/briar/api/db/event/BatchReceivedEvent.java
diff --git a/api/net/sf/briar/api/db/event/ContactAddedEvent.java b/src/net/sf/briar/api/db/event/ContactAddedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/ContactAddedEvent.java
rename to src/net/sf/briar/api/db/event/ContactAddedEvent.java
diff --git a/api/net/sf/briar/api/db/event/ContactRemovedEvent.java b/src/net/sf/briar/api/db/event/ContactRemovedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/ContactRemovedEvent.java
rename to src/net/sf/briar/api/db/event/ContactRemovedEvent.java
diff --git a/api/net/sf/briar/api/db/event/DatabaseEvent.java b/src/net/sf/briar/api/db/event/DatabaseEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/DatabaseEvent.java
rename to src/net/sf/briar/api/db/event/DatabaseEvent.java
diff --git a/api/net/sf/briar/api/db/event/DatabaseListener.java b/src/net/sf/briar/api/db/event/DatabaseListener.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/DatabaseListener.java
rename to src/net/sf/briar/api/db/event/DatabaseListener.java
diff --git a/api/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java b/src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
rename to src/net/sf/briar/api/db/event/LocalTransportsUpdatedEvent.java
diff --git a/api/net/sf/briar/api/db/event/MessagesAddedEvent.java b/src/net/sf/briar/api/db/event/MessagesAddedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/MessagesAddedEvent.java
rename to src/net/sf/briar/api/db/event/MessagesAddedEvent.java
diff --git a/api/net/sf/briar/api/db/event/RatingChangedEvent.java b/src/net/sf/briar/api/db/event/RatingChangedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/RatingChangedEvent.java
rename to src/net/sf/briar/api/db/event/RatingChangedEvent.java
diff --git a/api/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java b/src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
rename to src/net/sf/briar/api/db/event/RemoteTransportsUpdatedEvent.java
diff --git a/api/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java b/src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
similarity index 100%
rename from api/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
rename to src/net/sf/briar/api/db/event/SubscriptionsUpdatedEvent.java
diff --git a/api/net/sf/briar/api/i18n/FontManager.java b/src/net/sf/briar/api/i18n/FontManager.java
similarity index 100%
rename from api/net/sf/briar/api/i18n/FontManager.java
rename to src/net/sf/briar/api/i18n/FontManager.java
diff --git a/api/net/sf/briar/api/i18n/I18n.java b/src/net/sf/briar/api/i18n/I18n.java
similarity index 100%
rename from api/net/sf/briar/api/i18n/I18n.java
rename to src/net/sf/briar/api/i18n/I18n.java
diff --git a/api/net/sf/briar/api/i18n/Stri18ng.java b/src/net/sf/briar/api/i18n/Stri18ng.java
similarity index 100%
rename from api/net/sf/briar/api/i18n/Stri18ng.java
rename to src/net/sf/briar/api/i18n/Stri18ng.java
diff --git a/api/net/sf/briar/api/lifecycle/ShutdownManager.java b/src/net/sf/briar/api/lifecycle/ShutdownManager.java
similarity index 100%
rename from api/net/sf/briar/api/lifecycle/ShutdownManager.java
rename to src/net/sf/briar/api/lifecycle/ShutdownManager.java
diff --git a/api/net/sf/briar/api/plugins/InvitationConstants.java b/src/net/sf/briar/api/plugins/InvitationConstants.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/InvitationConstants.java
rename to src/net/sf/briar/api/plugins/InvitationConstants.java
diff --git a/api/net/sf/briar/api/plugins/Plugin.java b/src/net/sf/briar/api/plugins/Plugin.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/Plugin.java
rename to src/net/sf/briar/api/plugins/Plugin.java
diff --git a/api/net/sf/briar/api/plugins/PluginCallback.java b/src/net/sf/briar/api/plugins/PluginCallback.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/PluginCallback.java
rename to src/net/sf/briar/api/plugins/PluginCallback.java
diff --git a/api/net/sf/briar/api/plugins/PluginExecutor.java b/src/net/sf/briar/api/plugins/PluginExecutor.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/PluginExecutor.java
rename to src/net/sf/briar/api/plugins/PluginExecutor.java
diff --git a/api/net/sf/briar/api/plugins/PluginManager.java b/src/net/sf/briar/api/plugins/PluginManager.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/PluginManager.java
rename to src/net/sf/briar/api/plugins/PluginManager.java
diff --git a/api/net/sf/briar/api/plugins/duplex/DuplexPlugin.java b/src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
rename to src/net/sf/briar/api/plugins/duplex/DuplexPlugin.java
diff --git a/api/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java b/src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
rename to src/net/sf/briar/api/plugins/duplex/DuplexPluginCallback.java
diff --git a/api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java b/src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
rename to src/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
diff --git a/api/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java b/src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
rename to src/net/sf/briar/api/plugins/duplex/DuplexTransportConnection.java
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexPlugin.java b/src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
rename to src/net/sf/briar/api/plugins/simplex/SimplexPlugin.java
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java b/src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
rename to src/net/sf/briar/api/plugins/simplex/SimplexPluginCallback.java
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java b/src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
rename to src/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java b/src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
rename to src/net/sf/briar/api/plugins/simplex/SimplexTransportReader.java
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java b/src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
similarity index 100%
rename from api/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
rename to src/net/sf/briar/api/plugins/simplex/SimplexTransportWriter.java
diff --git a/api/net/sf/briar/api/protocol/Ack.java b/src/net/sf/briar/api/protocol/Ack.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Ack.java
rename to src/net/sf/briar/api/protocol/Ack.java
diff --git a/api/net/sf/briar/api/protocol/Author.java b/src/net/sf/briar/api/protocol/Author.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Author.java
rename to src/net/sf/briar/api/protocol/Author.java
diff --git a/api/net/sf/briar/api/protocol/AuthorFactory.java b/src/net/sf/briar/api/protocol/AuthorFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/AuthorFactory.java
rename to src/net/sf/briar/api/protocol/AuthorFactory.java
diff --git a/api/net/sf/briar/api/protocol/AuthorId.java b/src/net/sf/briar/api/protocol/AuthorId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/AuthorId.java
rename to src/net/sf/briar/api/protocol/AuthorId.java
diff --git a/api/net/sf/briar/api/protocol/Batch.java b/src/net/sf/briar/api/protocol/Batch.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Batch.java
rename to src/net/sf/briar/api/protocol/Batch.java
diff --git a/api/net/sf/briar/api/protocol/BatchId.java b/src/net/sf/briar/api/protocol/BatchId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/BatchId.java
rename to src/net/sf/briar/api/protocol/BatchId.java
diff --git a/api/net/sf/briar/api/protocol/Group.java b/src/net/sf/briar/api/protocol/Group.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Group.java
rename to src/net/sf/briar/api/protocol/Group.java
diff --git a/api/net/sf/briar/api/protocol/GroupFactory.java b/src/net/sf/briar/api/protocol/GroupFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/GroupFactory.java
rename to src/net/sf/briar/api/protocol/GroupFactory.java
diff --git a/api/net/sf/briar/api/protocol/GroupId.java b/src/net/sf/briar/api/protocol/GroupId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/GroupId.java
rename to src/net/sf/briar/api/protocol/GroupId.java
diff --git a/api/net/sf/briar/api/protocol/Message.java b/src/net/sf/briar/api/protocol/Message.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Message.java
rename to src/net/sf/briar/api/protocol/Message.java
diff --git a/api/net/sf/briar/api/protocol/MessageFactory.java b/src/net/sf/briar/api/protocol/MessageFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/MessageFactory.java
rename to src/net/sf/briar/api/protocol/MessageFactory.java
diff --git a/api/net/sf/briar/api/protocol/MessageId.java b/src/net/sf/briar/api/protocol/MessageId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/MessageId.java
rename to src/net/sf/briar/api/protocol/MessageId.java
diff --git a/api/net/sf/briar/api/protocol/Offer.java b/src/net/sf/briar/api/protocol/Offer.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Offer.java
rename to src/net/sf/briar/api/protocol/Offer.java
diff --git a/api/net/sf/briar/api/protocol/PacketFactory.java b/src/net/sf/briar/api/protocol/PacketFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/PacketFactory.java
rename to src/net/sf/briar/api/protocol/PacketFactory.java
diff --git a/api/net/sf/briar/api/protocol/ProtocolConstants.java b/src/net/sf/briar/api/protocol/ProtocolConstants.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/ProtocolConstants.java
rename to src/net/sf/briar/api/protocol/ProtocolConstants.java
diff --git a/api/net/sf/briar/api/protocol/ProtocolReader.java b/src/net/sf/briar/api/protocol/ProtocolReader.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/ProtocolReader.java
rename to src/net/sf/briar/api/protocol/ProtocolReader.java
diff --git a/api/net/sf/briar/api/protocol/ProtocolReaderFactory.java b/src/net/sf/briar/api/protocol/ProtocolReaderFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/ProtocolReaderFactory.java
rename to src/net/sf/briar/api/protocol/ProtocolReaderFactory.java
diff --git a/api/net/sf/briar/api/protocol/ProtocolWriter.java b/src/net/sf/briar/api/protocol/ProtocolWriter.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/ProtocolWriter.java
rename to src/net/sf/briar/api/protocol/ProtocolWriter.java
diff --git a/api/net/sf/briar/api/protocol/ProtocolWriterFactory.java b/src/net/sf/briar/api/protocol/ProtocolWriterFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/ProtocolWriterFactory.java
rename to src/net/sf/briar/api/protocol/ProtocolWriterFactory.java
diff --git a/api/net/sf/briar/api/protocol/RawBatch.java b/src/net/sf/briar/api/protocol/RawBatch.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/RawBatch.java
rename to src/net/sf/briar/api/protocol/RawBatch.java
diff --git a/api/net/sf/briar/api/protocol/Request.java b/src/net/sf/briar/api/protocol/Request.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Request.java
rename to src/net/sf/briar/api/protocol/Request.java
diff --git a/api/net/sf/briar/api/protocol/SubscriptionUpdate.java b/src/net/sf/briar/api/protocol/SubscriptionUpdate.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/SubscriptionUpdate.java
rename to src/net/sf/briar/api/protocol/SubscriptionUpdate.java
diff --git a/api/net/sf/briar/api/protocol/Transport.java b/src/net/sf/briar/api/protocol/Transport.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Transport.java
rename to src/net/sf/briar/api/protocol/Transport.java
diff --git a/api/net/sf/briar/api/protocol/TransportId.java b/src/net/sf/briar/api/protocol/TransportId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/TransportId.java
rename to src/net/sf/briar/api/protocol/TransportId.java
diff --git a/api/net/sf/briar/api/protocol/TransportUpdate.java b/src/net/sf/briar/api/protocol/TransportUpdate.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/TransportUpdate.java
rename to src/net/sf/briar/api/protocol/TransportUpdate.java
diff --git a/api/net/sf/briar/api/protocol/Types.java b/src/net/sf/briar/api/protocol/Types.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/Types.java
rename to src/net/sf/briar/api/protocol/Types.java
diff --git a/api/net/sf/briar/api/protocol/UniqueId.java b/src/net/sf/briar/api/protocol/UniqueId.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/UniqueId.java
rename to src/net/sf/briar/api/protocol/UniqueId.java
diff --git a/api/net/sf/briar/api/protocol/UnverifiedBatch.java b/src/net/sf/briar/api/protocol/UnverifiedBatch.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/UnverifiedBatch.java
rename to src/net/sf/briar/api/protocol/UnverifiedBatch.java
diff --git a/api/net/sf/briar/api/protocol/VerificationExecutor.java b/src/net/sf/briar/api/protocol/VerificationExecutor.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/VerificationExecutor.java
rename to src/net/sf/briar/api/protocol/VerificationExecutor.java
diff --git a/api/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java b/src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
rename to src/net/sf/briar/api/protocol/duplex/DuplexConnectionFactory.java
diff --git a/api/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java b/src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
similarity index 100%
rename from api/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
rename to src/net/sf/briar/api/protocol/simplex/SimplexConnectionFactory.java
diff --git a/api/net/sf/briar/api/serial/Consumer.java b/src/net/sf/briar/api/serial/Consumer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/Consumer.java
rename to src/net/sf/briar/api/serial/Consumer.java
diff --git a/api/net/sf/briar/api/serial/CopyingConsumer.java b/src/net/sf/briar/api/serial/CopyingConsumer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/CopyingConsumer.java
rename to src/net/sf/briar/api/serial/CopyingConsumer.java
diff --git a/api/net/sf/briar/api/serial/CountingConsumer.java b/src/net/sf/briar/api/serial/CountingConsumer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/CountingConsumer.java
rename to src/net/sf/briar/api/serial/CountingConsumer.java
diff --git a/api/net/sf/briar/api/serial/DigestingConsumer.java b/src/net/sf/briar/api/serial/DigestingConsumer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/DigestingConsumer.java
rename to src/net/sf/briar/api/serial/DigestingConsumer.java
diff --git a/api/net/sf/briar/api/serial/Reader.java b/src/net/sf/briar/api/serial/Reader.java
similarity index 100%
rename from api/net/sf/briar/api/serial/Reader.java
rename to src/net/sf/briar/api/serial/Reader.java
diff --git a/api/net/sf/briar/api/serial/ReaderFactory.java b/src/net/sf/briar/api/serial/ReaderFactory.java
similarity index 100%
rename from api/net/sf/briar/api/serial/ReaderFactory.java
rename to src/net/sf/briar/api/serial/ReaderFactory.java
diff --git a/api/net/sf/briar/api/serial/SerialComponent.java b/src/net/sf/briar/api/serial/SerialComponent.java
similarity index 100%
rename from api/net/sf/briar/api/serial/SerialComponent.java
rename to src/net/sf/briar/api/serial/SerialComponent.java
diff --git a/api/net/sf/briar/api/serial/SigningConsumer.java b/src/net/sf/briar/api/serial/SigningConsumer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/SigningConsumer.java
rename to src/net/sf/briar/api/serial/SigningConsumer.java
diff --git a/api/net/sf/briar/api/serial/StructReader.java b/src/net/sf/briar/api/serial/StructReader.java
similarity index 100%
rename from api/net/sf/briar/api/serial/StructReader.java
rename to src/net/sf/briar/api/serial/StructReader.java
diff --git a/api/net/sf/briar/api/serial/Writer.java b/src/net/sf/briar/api/serial/Writer.java
similarity index 100%
rename from api/net/sf/briar/api/serial/Writer.java
rename to src/net/sf/briar/api/serial/Writer.java
diff --git a/api/net/sf/briar/api/serial/WriterFactory.java b/src/net/sf/briar/api/serial/WriterFactory.java
similarity index 100%
rename from api/net/sf/briar/api/serial/WriterFactory.java
rename to src/net/sf/briar/api/serial/WriterFactory.java
diff --git a/api/net/sf/briar/api/transport/ConnectionContext.java b/src/net/sf/briar/api/transport/ConnectionContext.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionContext.java
rename to src/net/sf/briar/api/transport/ConnectionContext.java
diff --git a/api/net/sf/briar/api/transport/ConnectionDispatcher.java b/src/net/sf/briar/api/transport/ConnectionDispatcher.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionDispatcher.java
rename to src/net/sf/briar/api/transport/ConnectionDispatcher.java
diff --git a/api/net/sf/briar/api/transport/ConnectionReader.java b/src/net/sf/briar/api/transport/ConnectionReader.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionReader.java
rename to src/net/sf/briar/api/transport/ConnectionReader.java
diff --git a/api/net/sf/briar/api/transport/ConnectionReaderFactory.java b/src/net/sf/briar/api/transport/ConnectionReaderFactory.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionReaderFactory.java
rename to src/net/sf/briar/api/transport/ConnectionReaderFactory.java
diff --git a/api/net/sf/briar/api/transport/ConnectionRecogniser.java b/src/net/sf/briar/api/transport/ConnectionRecogniser.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionRecogniser.java
rename to src/net/sf/briar/api/transport/ConnectionRecogniser.java
diff --git a/api/net/sf/briar/api/transport/ConnectionRegistry.java b/src/net/sf/briar/api/transport/ConnectionRegistry.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionRegistry.java
rename to src/net/sf/briar/api/transport/ConnectionRegistry.java
diff --git a/api/net/sf/briar/api/transport/ConnectionWriter.java b/src/net/sf/briar/api/transport/ConnectionWriter.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionWriter.java
rename to src/net/sf/briar/api/transport/ConnectionWriter.java
diff --git a/api/net/sf/briar/api/transport/ConnectionWriterFactory.java b/src/net/sf/briar/api/transport/ConnectionWriterFactory.java
similarity index 100%
rename from api/net/sf/briar/api/transport/ConnectionWriterFactory.java
rename to src/net/sf/briar/api/transport/ConnectionWriterFactory.java
diff --git a/api/net/sf/briar/api/transport/IncomingConnectionExecutor.java b/src/net/sf/briar/api/transport/IncomingConnectionExecutor.java
similarity index 100%
rename from api/net/sf/briar/api/transport/IncomingConnectionExecutor.java
rename to src/net/sf/briar/api/transport/IncomingConnectionExecutor.java
diff --git a/api/net/sf/briar/api/transport/TransportConstants.java b/src/net/sf/briar/api/transport/TransportConstants.java
similarity index 100%
rename from api/net/sf/briar/api/transport/TransportConstants.java
rename to src/net/sf/briar/api/transport/TransportConstants.java
diff --git a/api/net/sf/briar/api/ui/UiCallback.java b/src/net/sf/briar/api/ui/UiCallback.java
similarity index 100%
rename from api/net/sf/briar/api/ui/UiCallback.java
rename to src/net/sf/briar/api/ui/UiCallback.java
diff --git a/components/net/sf/briar/clock/ClockModule.java b/src/net/sf/briar/clock/ClockModule.java
similarity index 100%
rename from components/net/sf/briar/clock/ClockModule.java
rename to src/net/sf/briar/clock/ClockModule.java
diff --git a/components/net/sf/briar/crypto/AuthenticatedCipherImpl.java b/src/net/sf/briar/crypto/AuthenticatedCipherImpl.java
similarity index 100%
rename from components/net/sf/briar/crypto/AuthenticatedCipherImpl.java
rename to src/net/sf/briar/crypto/AuthenticatedCipherImpl.java
diff --git a/components/net/sf/briar/crypto/CryptoComponentImpl.java b/src/net/sf/briar/crypto/CryptoComponentImpl.java
similarity index 100%
rename from components/net/sf/briar/crypto/CryptoComponentImpl.java
rename to src/net/sf/briar/crypto/CryptoComponentImpl.java
diff --git a/components/net/sf/briar/crypto/CryptoModule.java b/src/net/sf/briar/crypto/CryptoModule.java
similarity index 100%
rename from components/net/sf/briar/crypto/CryptoModule.java
rename to src/net/sf/briar/crypto/CryptoModule.java
diff --git a/components/net/sf/briar/crypto/DoubleDigest.java b/src/net/sf/briar/crypto/DoubleDigest.java
similarity index 100%
rename from components/net/sf/briar/crypto/DoubleDigest.java
rename to src/net/sf/briar/crypto/DoubleDigest.java
diff --git a/components/net/sf/briar/crypto/ErasableKeyImpl.java b/src/net/sf/briar/crypto/ErasableKeyImpl.java
similarity index 100%
rename from components/net/sf/briar/crypto/ErasableKeyImpl.java
rename to src/net/sf/briar/crypto/ErasableKeyImpl.java
diff --git a/components/net/sf/briar/crypto/KeyParserImpl.java b/src/net/sf/briar/crypto/KeyParserImpl.java
similarity index 100%
rename from components/net/sf/briar/crypto/KeyParserImpl.java
rename to src/net/sf/briar/crypto/KeyParserImpl.java
diff --git a/components/net/sf/briar/crypto/PseudoRandomImpl.java b/src/net/sf/briar/crypto/PseudoRandomImpl.java
similarity index 100%
rename from components/net/sf/briar/crypto/PseudoRandomImpl.java
rename to src/net/sf/briar/crypto/PseudoRandomImpl.java
diff --git a/components/net/sf/briar/db/Database.java b/src/net/sf/briar/db/Database.java
similarity index 100%
rename from components/net/sf/briar/db/Database.java
rename to src/net/sf/briar/db/Database.java
diff --git a/components/net/sf/briar/db/DatabaseCleaner.java b/src/net/sf/briar/db/DatabaseCleaner.java
similarity index 100%
rename from components/net/sf/briar/db/DatabaseCleaner.java
rename to src/net/sf/briar/db/DatabaseCleaner.java
diff --git a/components/net/sf/briar/db/DatabaseCleanerImpl.java b/src/net/sf/briar/db/DatabaseCleanerImpl.java
similarity index 100%
rename from components/net/sf/briar/db/DatabaseCleanerImpl.java
rename to src/net/sf/briar/db/DatabaseCleanerImpl.java
diff --git a/components/net/sf/briar/db/DatabaseComponentImpl.java b/src/net/sf/briar/db/DatabaseComponentImpl.java
similarity index 100%
rename from components/net/sf/briar/db/DatabaseComponentImpl.java
rename to src/net/sf/briar/db/DatabaseComponentImpl.java
diff --git a/components/net/sf/briar/db/DatabaseConstants.java b/src/net/sf/briar/db/DatabaseConstants.java
similarity index 100%
rename from components/net/sf/briar/db/DatabaseConstants.java
rename to src/net/sf/briar/db/DatabaseConstants.java
diff --git a/components/net/sf/briar/db/DatabaseModule.java b/src/net/sf/briar/db/DatabaseModule.java
similarity index 100%
rename from components/net/sf/briar/db/DatabaseModule.java
rename to src/net/sf/briar/db/DatabaseModule.java
diff --git a/components/net/sf/briar/db/DbStateException.java b/src/net/sf/briar/db/DbStateException.java
similarity index 100%
rename from components/net/sf/briar/db/DbStateException.java
rename to src/net/sf/briar/db/DbStateException.java
diff --git a/components/net/sf/briar/db/H2Database.java b/src/net/sf/briar/db/H2Database.java
similarity index 100%
rename from components/net/sf/briar/db/H2Database.java
rename to src/net/sf/briar/db/H2Database.java
diff --git a/components/net/sf/briar/db/JdbcDatabase.java b/src/net/sf/briar/db/JdbcDatabase.java
similarity index 100%
rename from components/net/sf/briar/db/JdbcDatabase.java
rename to src/net/sf/briar/db/JdbcDatabase.java
diff --git a/components/net/sf/briar/db/MessageHeaderImpl.java b/src/net/sf/briar/db/MessageHeaderImpl.java
similarity index 100%
rename from components/net/sf/briar/db/MessageHeaderImpl.java
rename to src/net/sf/briar/db/MessageHeaderImpl.java
diff --git a/components/net/sf/briar/i18n/FontManagerImpl.java b/src/net/sf/briar/i18n/FontManagerImpl.java
similarity index 100%
rename from components/net/sf/briar/i18n/FontManagerImpl.java
rename to src/net/sf/briar/i18n/FontManagerImpl.java
diff --git a/components/net/sf/briar/i18n/I18nImpl.java b/src/net/sf/briar/i18n/I18nImpl.java
similarity index 100%
rename from components/net/sf/briar/i18n/I18nImpl.java
rename to src/net/sf/briar/i18n/I18nImpl.java
diff --git a/components/net/sf/briar/i18n/I18nModule.java b/src/net/sf/briar/i18n/I18nModule.java
similarity index 100%
rename from components/net/sf/briar/i18n/I18nModule.java
rename to src/net/sf/briar/i18n/I18nModule.java
diff --git a/components/net/sf/briar/lifecycle/LifecycleModule.java b/src/net/sf/briar/lifecycle/LifecycleModule.java
similarity index 100%
rename from components/net/sf/briar/lifecycle/LifecycleModule.java
rename to src/net/sf/briar/lifecycle/LifecycleModule.java
diff --git a/components/net/sf/briar/lifecycle/ShutdownManagerImpl.java b/src/net/sf/briar/lifecycle/ShutdownManagerImpl.java
similarity index 100%
rename from components/net/sf/briar/lifecycle/ShutdownManagerImpl.java
rename to src/net/sf/briar/lifecycle/ShutdownManagerImpl.java
diff --git a/components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java b/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
similarity index 100%
rename from components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
rename to src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
diff --git a/components/net/sf/briar/plugins/PluginManagerImpl.java b/src/net/sf/briar/plugins/PluginManagerImpl.java
similarity index 100%
rename from components/net/sf/briar/plugins/PluginManagerImpl.java
rename to src/net/sf/briar/plugins/PluginManagerImpl.java
diff --git a/components/net/sf/briar/plugins/PluginsModule.java b/src/net/sf/briar/plugins/PluginsModule.java
similarity index 100%
rename from components/net/sf/briar/plugins/PluginsModule.java
rename to src/net/sf/briar/plugins/PluginsModule.java
diff --git a/components/net/sf/briar/plugins/Poller.java b/src/net/sf/briar/plugins/Poller.java
similarity index 100%
rename from components/net/sf/briar/plugins/Poller.java
rename to src/net/sf/briar/plugins/Poller.java
diff --git a/components/net/sf/briar/plugins/PollerImpl.java b/src/net/sf/briar/plugins/PollerImpl.java
similarity index 100%
rename from components/net/sf/briar/plugins/PollerImpl.java
rename to src/net/sf/briar/plugins/PollerImpl.java
diff --git a/components/net/sf/briar/plugins/bluetooth/AbstractListener.java b/src/net/sf/briar/plugins/bluetooth/AbstractListener.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/AbstractListener.java
rename to src/net/sf/briar/plugins/bluetooth/AbstractListener.java
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
rename to src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java b/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
rename to src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java b/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
rename to src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
diff --git a/components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java b/src/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
rename to src/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
diff --git a/components/net/sf/briar/plugins/bluetooth/ContactListener.java b/src/net/sf/briar/plugins/bluetooth/ContactListener.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/ContactListener.java
rename to src/net/sf/briar/plugins/bluetooth/ContactListener.java
diff --git a/components/net/sf/briar/plugins/bluetooth/InvitationListener.java b/src/net/sf/briar/plugins/bluetooth/InvitationListener.java
similarity index 100%
rename from components/net/sf/briar/plugins/bluetooth/InvitationListener.java
rename to src/net/sf/briar/plugins/bluetooth/InvitationListener.java
diff --git a/components/net/sf/briar/plugins/email/GmailPlugin.java b/src/net/sf/briar/plugins/email/GmailPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/email/GmailPlugin.java
rename to src/net/sf/briar/plugins/email/GmailPlugin.java
diff --git a/components/net/sf/briar/plugins/email/GmailPluginFactory.java b/src/net/sf/briar/plugins/email/GmailPluginFactory.java
similarity index 100%
rename from components/net/sf/briar/plugins/email/GmailPluginFactory.java
rename to src/net/sf/briar/plugins/email/GmailPluginFactory.java
diff --git a/components/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java b/src/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java
similarity index 100%
rename from components/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java
rename to src/net/sf/briar/plugins/email/GmailTransportConnectionWriter.java
diff --git a/components/net/sf/briar/plugins/file/FilePlugin.java b/src/net/sf/briar/plugins/file/FilePlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/FilePlugin.java
rename to src/net/sf/briar/plugins/file/FilePlugin.java
diff --git a/components/net/sf/briar/plugins/file/FileTransportReader.java b/src/net/sf/briar/plugins/file/FileTransportReader.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/FileTransportReader.java
rename to src/net/sf/briar/plugins/file/FileTransportReader.java
diff --git a/components/net/sf/briar/plugins/file/FileTransportWriter.java b/src/net/sf/briar/plugins/file/FileTransportWriter.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/FileTransportWriter.java
rename to src/net/sf/briar/plugins/file/FileTransportWriter.java
diff --git a/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java b/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
rename to src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
diff --git a/components/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java b/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
rename to src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
diff --git a/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java b/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
rename to src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
diff --git a/components/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java b/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
rename to src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
diff --git a/components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java b/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
rename to src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
diff --git a/components/net/sf/briar/plugins/file/RemovableDriveFinder.java b/src/net/sf/briar/plugins/file/RemovableDriveFinder.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/RemovableDriveFinder.java
rename to src/net/sf/briar/plugins/file/RemovableDriveFinder.java
diff --git a/components/net/sf/briar/plugins/file/RemovableDriveMonitor.java b/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/RemovableDriveMonitor.java
rename to src/net/sf/briar/plugins/file/RemovableDriveMonitor.java
diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java b/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/RemovableDrivePlugin.java
rename to src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java b/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
rename to src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
diff --git a/components/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java b/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
rename to src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
diff --git a/components/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java b/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
rename to src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
diff --git a/components/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java b/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
similarity index 100%
rename from components/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
rename to src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
diff --git a/components/net/sf/briar/plugins/socket/LanSocketPlugin.java b/src/net/sf/briar/plugins/socket/LanSocketPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/socket/LanSocketPlugin.java
rename to src/net/sf/briar/plugins/socket/LanSocketPlugin.java
diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java b/src/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
rename to src/net/sf/briar/plugins/socket/SimpleSocketPlugin.java
diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java b/src/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
similarity index 100%
rename from components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
rename to src/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
diff --git a/components/net/sf/briar/plugins/socket/SocketPlugin.java b/src/net/sf/briar/plugins/socket/SocketPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/socket/SocketPlugin.java
rename to src/net/sf/briar/plugins/socket/SocketPlugin.java
diff --git a/components/net/sf/briar/plugins/socket/SocketTransportConnection.java b/src/net/sf/briar/plugins/socket/SocketTransportConnection.java
similarity index 100%
rename from components/net/sf/briar/plugins/socket/SocketTransportConnection.java
rename to src/net/sf/briar/plugins/socket/SocketTransportConnection.java
diff --git a/components/net/sf/briar/plugins/tor/TorPlugin.java b/src/net/sf/briar/plugins/tor/TorPlugin.java
similarity index 100%
rename from components/net/sf/briar/plugins/tor/TorPlugin.java
rename to src/net/sf/briar/plugins/tor/TorPlugin.java
diff --git a/components/net/sf/briar/plugins/tor/TorPluginFactory.java b/src/net/sf/briar/plugins/tor/TorPluginFactory.java
similarity index 100%
rename from components/net/sf/briar/plugins/tor/TorPluginFactory.java
rename to src/net/sf/briar/plugins/tor/TorPluginFactory.java
diff --git a/components/net/sf/briar/plugins/tor/TorTransportConnection.java b/src/net/sf/briar/plugins/tor/TorTransportConnection.java
similarity index 100%
rename from components/net/sf/briar/plugins/tor/TorTransportConnection.java
rename to src/net/sf/briar/plugins/tor/TorTransportConnection.java
diff --git a/components/net/sf/briar/protocol/AckImpl.java b/src/net/sf/briar/protocol/AckImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/AckImpl.java
rename to src/net/sf/briar/protocol/AckImpl.java
diff --git a/components/net/sf/briar/protocol/AckReader.java b/src/net/sf/briar/protocol/AckReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/AckReader.java
rename to src/net/sf/briar/protocol/AckReader.java
diff --git a/components/net/sf/briar/protocol/AuthorFactoryImpl.java b/src/net/sf/briar/protocol/AuthorFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/AuthorFactoryImpl.java
rename to src/net/sf/briar/protocol/AuthorFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/AuthorImpl.java b/src/net/sf/briar/protocol/AuthorImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/AuthorImpl.java
rename to src/net/sf/briar/protocol/AuthorImpl.java
diff --git a/components/net/sf/briar/protocol/AuthorReader.java b/src/net/sf/briar/protocol/AuthorReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/AuthorReader.java
rename to src/net/sf/briar/protocol/AuthorReader.java
diff --git a/components/net/sf/briar/protocol/BatchImpl.java b/src/net/sf/briar/protocol/BatchImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/BatchImpl.java
rename to src/net/sf/briar/protocol/BatchImpl.java
diff --git a/components/net/sf/briar/protocol/BatchReader.java b/src/net/sf/briar/protocol/BatchReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/BatchReader.java
rename to src/net/sf/briar/protocol/BatchReader.java
diff --git a/components/net/sf/briar/protocol/GroupFactoryImpl.java b/src/net/sf/briar/protocol/GroupFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/GroupFactoryImpl.java
rename to src/net/sf/briar/protocol/GroupFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/GroupImpl.java b/src/net/sf/briar/protocol/GroupImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/GroupImpl.java
rename to src/net/sf/briar/protocol/GroupImpl.java
diff --git a/components/net/sf/briar/protocol/GroupReader.java b/src/net/sf/briar/protocol/GroupReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/GroupReader.java
rename to src/net/sf/briar/protocol/GroupReader.java
diff --git a/components/net/sf/briar/protocol/MessageFactoryImpl.java b/src/net/sf/briar/protocol/MessageFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/MessageFactoryImpl.java
rename to src/net/sf/briar/protocol/MessageFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/MessageImpl.java b/src/net/sf/briar/protocol/MessageImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/MessageImpl.java
rename to src/net/sf/briar/protocol/MessageImpl.java
diff --git a/components/net/sf/briar/protocol/MessageReader.java b/src/net/sf/briar/protocol/MessageReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/MessageReader.java
rename to src/net/sf/briar/protocol/MessageReader.java
diff --git a/components/net/sf/briar/protocol/OfferImpl.java b/src/net/sf/briar/protocol/OfferImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/OfferImpl.java
rename to src/net/sf/briar/protocol/OfferImpl.java
diff --git a/components/net/sf/briar/protocol/OfferReader.java b/src/net/sf/briar/protocol/OfferReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/OfferReader.java
rename to src/net/sf/briar/protocol/OfferReader.java
diff --git a/components/net/sf/briar/protocol/PacketFactoryImpl.java b/src/net/sf/briar/protocol/PacketFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/PacketFactoryImpl.java
rename to src/net/sf/briar/protocol/PacketFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/ProtocolModule.java b/src/net/sf/briar/protocol/ProtocolModule.java
similarity index 100%
rename from components/net/sf/briar/protocol/ProtocolModule.java
rename to src/net/sf/briar/protocol/ProtocolModule.java
diff --git a/components/net/sf/briar/protocol/ProtocolReaderFactoryImpl.java b/src/net/sf/briar/protocol/ProtocolReaderFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/ProtocolReaderFactoryImpl.java
rename to src/net/sf/briar/protocol/ProtocolReaderFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/ProtocolReaderImpl.java b/src/net/sf/briar/protocol/ProtocolReaderImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/ProtocolReaderImpl.java
rename to src/net/sf/briar/protocol/ProtocolReaderImpl.java
diff --git a/components/net/sf/briar/protocol/ProtocolWriterFactoryImpl.java b/src/net/sf/briar/protocol/ProtocolWriterFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/ProtocolWriterFactoryImpl.java
rename to src/net/sf/briar/protocol/ProtocolWriterFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/ProtocolWriterImpl.java b/src/net/sf/briar/protocol/ProtocolWriterImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/ProtocolWriterImpl.java
rename to src/net/sf/briar/protocol/ProtocolWriterImpl.java
diff --git a/components/net/sf/briar/protocol/RawBatchImpl.java b/src/net/sf/briar/protocol/RawBatchImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/RawBatchImpl.java
rename to src/net/sf/briar/protocol/RawBatchImpl.java
diff --git a/components/net/sf/briar/protocol/RequestImpl.java b/src/net/sf/briar/protocol/RequestImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/RequestImpl.java
rename to src/net/sf/briar/protocol/RequestImpl.java
diff --git a/components/net/sf/briar/protocol/RequestReader.java b/src/net/sf/briar/protocol/RequestReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/RequestReader.java
rename to src/net/sf/briar/protocol/RequestReader.java
diff --git a/components/net/sf/briar/protocol/SubscriptionUpdateImpl.java b/src/net/sf/briar/protocol/SubscriptionUpdateImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/SubscriptionUpdateImpl.java
rename to src/net/sf/briar/protocol/SubscriptionUpdateImpl.java
diff --git a/components/net/sf/briar/protocol/SubscriptionUpdateReader.java b/src/net/sf/briar/protocol/SubscriptionUpdateReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/SubscriptionUpdateReader.java
rename to src/net/sf/briar/protocol/SubscriptionUpdateReader.java
diff --git a/components/net/sf/briar/protocol/TransportUpdateImpl.java b/src/net/sf/briar/protocol/TransportUpdateImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/TransportUpdateImpl.java
rename to src/net/sf/briar/protocol/TransportUpdateImpl.java
diff --git a/components/net/sf/briar/protocol/TransportUpdateReader.java b/src/net/sf/briar/protocol/TransportUpdateReader.java
similarity index 100%
rename from components/net/sf/briar/protocol/TransportUpdateReader.java
rename to src/net/sf/briar/protocol/TransportUpdateReader.java
diff --git a/components/net/sf/briar/protocol/UnverifiedBatchFactory.java b/src/net/sf/briar/protocol/UnverifiedBatchFactory.java
similarity index 100%
rename from components/net/sf/briar/protocol/UnverifiedBatchFactory.java
rename to src/net/sf/briar/protocol/UnverifiedBatchFactory.java
diff --git a/components/net/sf/briar/protocol/UnverifiedBatchFactoryImpl.java b/src/net/sf/briar/protocol/UnverifiedBatchFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/UnverifiedBatchFactoryImpl.java
rename to src/net/sf/briar/protocol/UnverifiedBatchFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/UnverifiedBatchImpl.java b/src/net/sf/briar/protocol/UnverifiedBatchImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/UnverifiedBatchImpl.java
rename to src/net/sf/briar/protocol/UnverifiedBatchImpl.java
diff --git a/components/net/sf/briar/protocol/UnverifiedMessage.java b/src/net/sf/briar/protocol/UnverifiedMessage.java
similarity index 100%
rename from components/net/sf/briar/protocol/UnverifiedMessage.java
rename to src/net/sf/briar/protocol/UnverifiedMessage.java
diff --git a/components/net/sf/briar/protocol/UnverifiedMessageImpl.java b/src/net/sf/briar/protocol/UnverifiedMessageImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/UnverifiedMessageImpl.java
rename to src/net/sf/briar/protocol/UnverifiedMessageImpl.java
diff --git a/components/net/sf/briar/protocol/duplex/DuplexConnection.java b/src/net/sf/briar/protocol/duplex/DuplexConnection.java
similarity index 100%
rename from components/net/sf/briar/protocol/duplex/DuplexConnection.java
rename to src/net/sf/briar/protocol/duplex/DuplexConnection.java
diff --git a/components/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java b/src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
rename to src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/duplex/DuplexProtocolModule.java b/src/net/sf/briar/protocol/duplex/DuplexProtocolModule.java
similarity index 100%
rename from components/net/sf/briar/protocol/duplex/DuplexProtocolModule.java
rename to src/net/sf/briar/protocol/duplex/DuplexProtocolModule.java
diff --git a/components/net/sf/briar/protocol/duplex/IncomingDuplexConnection.java b/src/net/sf/briar/protocol/duplex/IncomingDuplexConnection.java
similarity index 100%
rename from components/net/sf/briar/protocol/duplex/IncomingDuplexConnection.java
rename to src/net/sf/briar/protocol/duplex/IncomingDuplexConnection.java
diff --git a/components/net/sf/briar/protocol/duplex/OutgoingDuplexConnection.java b/src/net/sf/briar/protocol/duplex/OutgoingDuplexConnection.java
similarity index 100%
rename from components/net/sf/briar/protocol/duplex/OutgoingDuplexConnection.java
rename to src/net/sf/briar/protocol/duplex/OutgoingDuplexConnection.java
diff --git a/components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java b/src/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java
similarity index 100%
rename from components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java
rename to src/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java
diff --git a/components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java b/src/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java
similarity index 100%
rename from components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java
rename to src/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java
diff --git a/components/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java b/src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
rename to src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
diff --git a/components/net/sf/briar/protocol/simplex/SimplexProtocolModule.java b/src/net/sf/briar/protocol/simplex/SimplexProtocolModule.java
similarity index 100%
rename from components/net/sf/briar/protocol/simplex/SimplexProtocolModule.java
rename to src/net/sf/briar/protocol/simplex/SimplexProtocolModule.java
diff --git a/components/net/sf/briar/serial/ReaderFactoryImpl.java b/src/net/sf/briar/serial/ReaderFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/serial/ReaderFactoryImpl.java
rename to src/net/sf/briar/serial/ReaderFactoryImpl.java
diff --git a/components/net/sf/briar/serial/ReaderImpl.java b/src/net/sf/briar/serial/ReaderImpl.java
similarity index 100%
rename from components/net/sf/briar/serial/ReaderImpl.java
rename to src/net/sf/briar/serial/ReaderImpl.java
diff --git a/components/net/sf/briar/serial/SerialComponentImpl.java b/src/net/sf/briar/serial/SerialComponentImpl.java
similarity index 100%
rename from components/net/sf/briar/serial/SerialComponentImpl.java
rename to src/net/sf/briar/serial/SerialComponentImpl.java
diff --git a/components/net/sf/briar/serial/SerialModule.java b/src/net/sf/briar/serial/SerialModule.java
similarity index 100%
rename from components/net/sf/briar/serial/SerialModule.java
rename to src/net/sf/briar/serial/SerialModule.java
diff --git a/components/net/sf/briar/serial/Tag.java b/src/net/sf/briar/serial/Tag.java
similarity index 100%
rename from components/net/sf/briar/serial/Tag.java
rename to src/net/sf/briar/serial/Tag.java
diff --git a/components/net/sf/briar/serial/WriterFactoryImpl.java b/src/net/sf/briar/serial/WriterFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/serial/WriterFactoryImpl.java
rename to src/net/sf/briar/serial/WriterFactoryImpl.java
diff --git a/components/net/sf/briar/serial/WriterImpl.java b/src/net/sf/briar/serial/WriterImpl.java
similarity index 100%
rename from components/net/sf/briar/serial/WriterImpl.java
rename to src/net/sf/briar/serial/WriterImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java b/src/net/sf/briar/transport/ConnectionDispatcherImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionDispatcherImpl.java
rename to src/net/sf/briar/transport/ConnectionDispatcherImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionReaderFactoryImpl.java b/src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
rename to src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionReaderImpl.java b/src/net/sf/briar/transport/ConnectionReaderImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionReaderImpl.java
rename to src/net/sf/briar/transport/ConnectionReaderImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionRecogniserImpl.java b/src/net/sf/briar/transport/ConnectionRecogniserImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionRecogniserImpl.java
rename to src/net/sf/briar/transport/ConnectionRecogniserImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionRegistryImpl.java b/src/net/sf/briar/transport/ConnectionRegistryImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionRegistryImpl.java
rename to src/net/sf/briar/transport/ConnectionRegistryImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionWindow.java b/src/net/sf/briar/transport/ConnectionWindow.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionWindow.java
rename to src/net/sf/briar/transport/ConnectionWindow.java
diff --git a/components/net/sf/briar/transport/ConnectionWriterFactoryImpl.java b/src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
rename to src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
diff --git a/components/net/sf/briar/transport/ConnectionWriterImpl.java b/src/net/sf/briar/transport/ConnectionWriterImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/ConnectionWriterImpl.java
rename to src/net/sf/briar/transport/ConnectionWriterImpl.java
diff --git a/components/net/sf/briar/transport/FrameEncoder.java b/src/net/sf/briar/transport/FrameEncoder.java
similarity index 100%
rename from components/net/sf/briar/transport/FrameEncoder.java
rename to src/net/sf/briar/transport/FrameEncoder.java
diff --git a/components/net/sf/briar/transport/FrameReader.java b/src/net/sf/briar/transport/FrameReader.java
similarity index 100%
rename from components/net/sf/briar/transport/FrameReader.java
rename to src/net/sf/briar/transport/FrameReader.java
diff --git a/components/net/sf/briar/transport/FrameWriter.java b/src/net/sf/briar/transport/FrameWriter.java
similarity index 100%
rename from components/net/sf/briar/transport/FrameWriter.java
rename to src/net/sf/briar/transport/FrameWriter.java
diff --git a/components/net/sf/briar/transport/IncomingEncryptionLayer.java b/src/net/sf/briar/transport/IncomingEncryptionLayer.java
similarity index 100%
rename from components/net/sf/briar/transport/IncomingEncryptionLayer.java
rename to src/net/sf/briar/transport/IncomingEncryptionLayer.java
diff --git a/components/net/sf/briar/transport/KeyManagerImpl.java b/src/net/sf/briar/transport/KeyManagerImpl.java
similarity index 100%
rename from components/net/sf/briar/transport/KeyManagerImpl.java
rename to src/net/sf/briar/transport/KeyManagerImpl.java
diff --git a/components/net/sf/briar/transport/OutgoingEncryptionLayer.java b/src/net/sf/briar/transport/OutgoingEncryptionLayer.java
similarity index 100%
rename from components/net/sf/briar/transport/OutgoingEncryptionLayer.java
rename to src/net/sf/briar/transport/OutgoingEncryptionLayer.java
diff --git a/components/net/sf/briar/transport/TransportConnectionRecogniser.java b/src/net/sf/briar/transport/TransportConnectionRecogniser.java
similarity index 100%
rename from components/net/sf/briar/transport/TransportConnectionRecogniser.java
rename to src/net/sf/briar/transport/TransportConnectionRecogniser.java
diff --git a/components/net/sf/briar/transport/TransportModule.java b/src/net/sf/briar/transport/TransportModule.java
similarity index 100%
rename from components/net/sf/briar/transport/TransportModule.java
rename to src/net/sf/briar/transport/TransportModule.java
diff --git a/util/net/sf/briar/util/BoundedExecutor.java b/src/net/sf/briar/util/BoundedExecutor.java
similarity index 100%
rename from util/net/sf/briar/util/BoundedExecutor.java
rename to src/net/sf/briar/util/BoundedExecutor.java
diff --git a/util/net/sf/briar/util/ByteUtils.java b/src/net/sf/briar/util/ByteUtils.java
similarity index 100%
rename from util/net/sf/briar/util/ByteUtils.java
rename to src/net/sf/briar/util/ByteUtils.java
diff --git a/util/net/sf/briar/util/FileUtils.java b/src/net/sf/briar/util/FileUtils.java
similarity index 100%
rename from util/net/sf/briar/util/FileUtils.java
rename to src/net/sf/briar/util/FileUtils.java
diff --git a/util/net/sf/briar/util/OsUtils.java b/src/net/sf/briar/util/OsUtils.java
similarity index 100%
rename from util/net/sf/briar/util/OsUtils.java
rename to src/net/sf/briar/util/OsUtils.java
diff --git a/util/net/sf/briar/util/StringUtils.java b/src/net/sf/briar/util/StringUtils.java
similarity index 100%
rename from util/net/sf/briar/util/StringUtils.java
rename to src/net/sf/briar/util/StringUtils.java
diff --git a/util/net/sf/briar/util/ZipUtils.java b/src/net/sf/briar/util/ZipUtils.java
similarity index 100%
rename from util/net/sf/briar/util/ZipUtils.java
rename to src/net/sf/briar/util/ZipUtils.java
diff --git a/test/build.xml b/test/build.xml
index bcb9ea9678a957bf8012f3bdee91c6cd9dd09425..2eb934d8ab7e05964b76931a90d99e9b4ca20fa0 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -8,12 +8,10 @@
 			<classpath>
 				<fileset refid='bundled-jars'/>
 				<fileset refid='test-jars'/>
-				<path refid='api-classes'/>
-				<path refid='component-classes'/>
+				<path refid='classes'/>
 				<path refid='test-classes'/>
-				<path refid='util-classes'/>
 			</classpath>
-			<jvmarg value='-Djava.library.path=../lib'/>
+			<jvmarg value='-Djava.library.path=../libs'/>
 			<test name='net.sf.briar.LockFairnessTest'/>
 			<test name='net.sf.briar.ProtocolIntegrationTest'/>
 			<test name='net.sf.briar.crypto.CounterModeTest'/>
@@ -67,12 +65,10 @@
 			<classpath>
 				<fileset refid='bundled-jars'/>
 				<fileset refid='test-jars'/>
-				<path refid='api-classes'/>
-				<path refid='component-classes'/>
+				<path refid='classes'/>
 				<path refid='test-classes'/>
-				<path refid='util-classes'/>
 			</classpath>
-			<jvmarg value='-Djava.library.path=../lib'/>
+			<jvmarg value='-Djava.library.path=../libs'/>
 			<test name='net.sf.briar.db.H2DatabaseTest'/>
 			<test name='net.sf.briar.i18n.FontManagerTest'/>
 			<test name='net.sf.briar.plugins.tor.TorPluginTest'/>
diff --git a/lib/unzipsfx.exe b/unzipsfx.exe
similarity index 100%
rename from lib/unzipsfx.exe
rename to unzipsfx.exe
diff --git a/util/.gitignore b/util/.gitignore
deleted file mode 100644
index 796b96d1c402326528b4ba3c12ee9d92d0e212e9..0000000000000000000000000000000000000000
--- a/util/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/util/build.xml b/util/build.xml
deleted file mode 100644
index 1d52a27ea25d24a3be1c81a1688bb8b846fe888e..0000000000000000000000000000000000000000
--- a/util/build.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<project name='util' default='depend'>
-	<import file='../build-common.xml'/>
-</project>