diff --git a/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java b/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java
index eb98217947a30dc7a464033d3a94f5881557003a..b18cea9f82af876aea138b40106e802de3cb1c82 100644
--- a/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java
+++ b/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java
@@ -9,7 +9,6 @@ import org.briarproject.api.crypto.PrivateKey;
 import org.briarproject.api.crypto.PseudoRandom;
 import org.briarproject.api.crypto.PublicKey;
 import org.briarproject.api.crypto.SecretKey;
-import org.briarproject.api.crypto.Signature;
 import org.briarproject.api.system.SeedProvider;
 import org.briarproject.api.transport.IncomingKeys;
 import org.briarproject.api.transport.OutgoingKeys;
diff --git a/briar-api/src/org/briarproject/api/crypto/Signature.java b/briar-core/src/org/briarproject/crypto/Signature.java
similarity index 77%
rename from briar-api/src/org/briarproject/api/crypto/Signature.java
rename to briar-core/src/org/briarproject/crypto/Signature.java
index 85c3c93a156b44de7b351455c82d02034ac71cc5..78379f693be58edd6adbb28a03c179aa55a7735a 100644
--- a/briar-api/src/org/briarproject/api/crypto/Signature.java
+++ b/briar-core/src/org/briarproject/crypto/Signature.java
@@ -1,8 +1,11 @@
-package org.briarproject.api.crypto;
+package org.briarproject.crypto;
+
+import org.briarproject.api.crypto.PrivateKey;
+import org.briarproject.api.crypto.PublicKey;
 
 import java.security.GeneralSecurityException;
 
-public interface Signature {
+interface Signature {
 
 	/**
 	 * @see {@link java.security.Signature#initSign(java.security.PrivateKey)}
@@ -10,7 +13,7 @@ public interface Signature {
 	void initSign(PrivateKey k) throws GeneralSecurityException;
 
 	/**
-	 * @see {@link java.security.Signature#initVafiry(java.security.PublicKey)}
+	 * @see {@link java.security.Signature#initVerify(java.security.PublicKey)}
 	 */
 	void initVerify(PublicKey k) throws GeneralSecurityException;
 
diff --git a/briar-core/src/org/briarproject/crypto/SignatureImpl.java b/briar-core/src/org/briarproject/crypto/SignatureImpl.java
index ebed171edd632b969ec4c439ad95e854d8c78bf3..e7c7c6394abc4ae3bb3d08e6055b6c6c54f6d5b2 100644
--- a/briar-core/src/org/briarproject/crypto/SignatureImpl.java
+++ b/briar-core/src/org/briarproject/crypto/SignatureImpl.java
@@ -2,7 +2,6 @@ package org.briarproject.crypto;
 
 import org.briarproject.api.crypto.PrivateKey;
 import org.briarproject.api.crypto.PublicKey;
-import org.briarproject.api.crypto.Signature;
 import org.spongycastle.crypto.Digest;
 import org.spongycastle.crypto.params.ECPrivateKeyParameters;
 import org.spongycastle.crypto.params.ECPublicKeyParameters;
@@ -33,30 +32,36 @@ class SignatureImpl implements Signature {
 		signer = new DSADigestSigner(new ECDSASigner(calculator), digest);
 	}
 
+	@Override
 	public void initSign(PrivateKey k) throws GeneralSecurityException {
 		if (!(k instanceof Sec1PrivateKey)) throw new GeneralSecurityException();
 		ECPrivateKeyParameters priv = ((Sec1PrivateKey) k).getKey();
 		signer.init(true, new ParametersWithRandom(priv, secureRandom));
 	}
 
+	@Override
 	public void initVerify(PublicKey k) throws GeneralSecurityException {
 		if (!(k instanceof Sec1PublicKey)) throw new GeneralSecurityException();
 		ECPublicKeyParameters pub = ((Sec1PublicKey) k).getKey();
 		signer.init(false, pub);
 	}
 
+	@Override
 	public void update(byte b) {
 		signer.update(b);
 	}
 
+	@Override
 	public void update(byte[] b) {
 		update(b, 0, b.length);
 	}
 
+	@Override
 	public void update(byte[] b, int off, int len) {
 		signer.update(b, off, len);
 	}
 
+	@Override
 	public byte[] sign() {
 		long now = System.currentTimeMillis();
 		byte[] signature = signer.generateSignature();
@@ -66,6 +71,7 @@ class SignatureImpl implements Signature {
 		return signature;
 	}
 
+	@Override
 	public boolean verify(byte[] signature) {
 		long now = System.currentTimeMillis();
 		boolean valid = signer.verifySignature(signature);
diff --git a/briar-core/src/org/briarproject/invitation/Connector.java b/briar-core/src/org/briarproject/invitation/Connector.java
index 371a635219da4fa83cfab2ed292d9d4222cc3adc..6afcedf067407814041f6b36a774a3fb5a9f8619 100644
--- a/briar-core/src/org/briarproject/invitation/Connector.java
+++ b/briar-core/src/org/briarproject/invitation/Connector.java
@@ -1,31 +1,20 @@
 package org.briarproject.invitation;
 
 import org.briarproject.api.FormatException;
-import org.briarproject.api.TransportId;
 import org.briarproject.api.contact.ContactExchangeTask;
-import org.briarproject.api.contact.ContactId;
-import org.briarproject.api.contact.ContactManager;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.KeyPair;
 import org.briarproject.api.crypto.KeyParser;
 import org.briarproject.api.crypto.MessageDigest;
 import org.briarproject.api.crypto.PseudoRandom;
 import org.briarproject.api.crypto.SecretKey;
-import org.briarproject.api.crypto.Signature;
 import org.briarproject.api.data.BdfReader;
 import org.briarproject.api.data.BdfReaderFactory;
 import org.briarproject.api.data.BdfWriter;
 import org.briarproject.api.data.BdfWriterFactory;
-import org.briarproject.api.db.DbException;
-import org.briarproject.api.identity.Author;
-import org.briarproject.api.identity.AuthorFactory;
 import org.briarproject.api.identity.LocalAuthor;
-import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
-import org.briarproject.api.system.Clock;
-import org.briarproject.api.transport.StreamReaderFactory;
-import org.briarproject.api.transport.StreamWriterFactory;
 
 import java.io.IOException;
 import java.security.GeneralSecurityException;
@@ -34,9 +23,7 @@ import java.util.logging.Logger;
 
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
-import static org.briarproject.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
 import static org.briarproject.api.identity.AuthorConstants.MAX_PUBLIC_KEY_LENGTH;
-import static org.briarproject.api.identity.AuthorConstants.MAX_SIGNATURE_LENGTH;
 import static org.briarproject.api.invitation.InvitationConstants.CONNECTION_TIMEOUT;
 
 // FIXME: This class has way too many dependencies