diff --git a/briar-api/src/org/briarproject/api/serial/Consumer.java b/briar-api/src/org/briarproject/api/data/Consumer.java
similarity index 81%
rename from briar-api/src/org/briarproject/api/serial/Consumer.java
rename to briar-api/src/org/briarproject/api/data/Consumer.java
index 5f555a5c23b98177143f75467977ee8993af1704..d640ba2c088f4c4ac1477b3bdd2ed56150fbf1f1 100644
--- a/briar-api/src/org/briarproject/api/serial/Consumer.java
+++ b/briar-api/src/org/briarproject/api/data/Consumer.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.IOException;
 
diff --git a/briar-api/src/org/briarproject/api/serial/SerialConstants.java b/briar-api/src/org/briarproject/api/data/DataConstants.java
similarity index 66%
rename from briar-api/src/org/briarproject/api/serial/SerialConstants.java
rename to briar-api/src/org/briarproject/api/data/DataConstants.java
index cf34d8cdc28efbdb79d9112a302e051139521a5b..7ab04132e8ec884e62588983c7f2203dbe0e3237 100644
--- a/briar-api/src/org/briarproject/api/serial/SerialConstants.java
+++ b/briar-api/src/org/briarproject/api/data/DataConstants.java
@@ -1,8 +1,8 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import org.briarproject.api.UniqueId;
 
-public interface SerialConstants {
+public interface DataConstants {
 
 	int LIST_START_LENGTH = 1;
 
diff --git a/briar-api/src/org/briarproject/api/serial/ObjectReader.java b/briar-api/src/org/briarproject/api/data/ObjectReader.java
similarity index 75%
rename from briar-api/src/org/briarproject/api/serial/ObjectReader.java
rename to briar-api/src/org/briarproject/api/data/ObjectReader.java
index 4606c33004c6c35495e5e730ee143987ac337a38..3c83d41f3ed5b779f6b7f6b97b42963adee1ae6f 100644
--- a/briar-api/src/org/briarproject/api/serial/ObjectReader.java
+++ b/briar-api/src/org/briarproject/api/data/ObjectReader.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.IOException;
 
diff --git a/briar-api/src/org/briarproject/api/serial/Reader.java b/briar-api/src/org/briarproject/api/data/Reader.java
similarity index 97%
rename from briar-api/src/org/briarproject/api/serial/Reader.java
rename to briar-api/src/org/briarproject/api/data/Reader.java
index 401ec7930f053da660af55aeb5c94a9d83a010c4..326f4a9e49e4d4477ede2bb2754a32d422d78046 100644
--- a/briar-api/src/org/briarproject/api/serial/Reader.java
+++ b/briar-api/src/org/briarproject/api/data/Reader.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.IOException;
 
diff --git a/briar-api/src/org/briarproject/api/serial/ReaderFactory.java b/briar-api/src/org/briarproject/api/data/ReaderFactory.java
similarity index 73%
rename from briar-api/src/org/briarproject/api/serial/ReaderFactory.java
rename to briar-api/src/org/briarproject/api/data/ReaderFactory.java
index 5b48bd43fcb22fd8c5b4e0851567a49e98d3a818..a349fd4bafe612c5485f86bdc99b4a2db546da21 100644
--- a/briar-api/src/org/briarproject/api/serial/ReaderFactory.java
+++ b/briar-api/src/org/briarproject/api/data/ReaderFactory.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.InputStream;
 
diff --git a/briar-api/src/org/briarproject/api/serial/Writer.java b/briar-api/src/org/briarproject/api/data/Writer.java
similarity index 95%
rename from briar-api/src/org/briarproject/api/serial/Writer.java
rename to briar-api/src/org/briarproject/api/data/Writer.java
index 3d70451172ca94a5bf3f96cff4692e869e63ad73..ae915a992c6ba07f32e7ffa8e7e18705ac5a98ec 100644
--- a/briar-api/src/org/briarproject/api/serial/Writer.java
+++ b/briar-api/src/org/briarproject/api/data/Writer.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.IOException;
 import java.util.Collection;
diff --git a/briar-api/src/org/briarproject/api/serial/WriterFactory.java b/briar-api/src/org/briarproject/api/data/WriterFactory.java
similarity index 74%
rename from briar-api/src/org/briarproject/api/serial/WriterFactory.java
rename to briar-api/src/org/briarproject/api/data/WriterFactory.java
index 121de0eb0e58b0678cd613661f2fbb59b6fe8281..2fc1fd37d395c9b4e595e74c772b8e5033c874e3 100644
--- a/briar-api/src/org/briarproject/api/serial/WriterFactory.java
+++ b/briar-api/src/org/briarproject/api/data/WriterFactory.java
@@ -1,4 +1,4 @@
-package org.briarproject.api.serial;
+package org.briarproject.api.data;
 
 import java.io.OutputStream;
 
diff --git a/briar-core/src/org/briarproject/serial/ReaderFactoryImpl.java b/briar-core/src/org/briarproject/data/ReaderFactoryImpl.java
similarity index 56%
rename from briar-core/src/org/briarproject/serial/ReaderFactoryImpl.java
rename to briar-core/src/org/briarproject/data/ReaderFactoryImpl.java
index 8c7450940252860b5a14622cec8244bce3f9404c..15b4376faac71c217d4643dcc9ed2167ac01619f 100644
--- a/briar-core/src/org/briarproject/serial/ReaderFactoryImpl.java
+++ b/briar-core/src/org/briarproject/data/ReaderFactoryImpl.java
@@ -1,9 +1,9 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
 import java.io.InputStream;
 
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ReaderFactory;
+import org.briarproject.api.data.Reader;
+import org.briarproject.api.data.ReaderFactory;
 
 class ReaderFactoryImpl implements ReaderFactory {
 
diff --git a/briar-core/src/org/briarproject/serial/ReaderImpl.java b/briar-core/src/org/briarproject/data/ReaderImpl.java
similarity index 89%
rename from briar-core/src/org/briarproject/serial/ReaderImpl.java
rename to briar-core/src/org/briarproject/data/ReaderImpl.java
index efd4f88108456169a463a8b918f6bdc10a848b1f..5011e0bf75b709b2d51e737de7deb294979e30bb 100644
--- a/briar-core/src/org/briarproject/serial/ReaderImpl.java
+++ b/briar-core/src/org/briarproject/data/ReaderImpl.java
@@ -1,20 +1,20 @@
-package org.briarproject.serial;
-
-import static org.briarproject.serial.ObjectTypes.END;
-import static org.briarproject.serial.ObjectTypes.FLOAT_64;
-import static org.briarproject.serial.ObjectTypes.INT_16;
-import static org.briarproject.serial.ObjectTypes.INT_32;
-import static org.briarproject.serial.ObjectTypes.INT_64;
-import static org.briarproject.serial.ObjectTypes.INT_8;
-import static org.briarproject.serial.ObjectTypes.LIST;
-import static org.briarproject.serial.ObjectTypes.MAP;
-import static org.briarproject.serial.ObjectTypes.NULL;
-import static org.briarproject.serial.ObjectTypes.RAW_16;
-import static org.briarproject.serial.ObjectTypes.RAW_32;
-import static org.briarproject.serial.ObjectTypes.RAW_8;
-import static org.briarproject.serial.ObjectTypes.STRING_16;
-import static org.briarproject.serial.ObjectTypes.STRING_32;
-import static org.briarproject.serial.ObjectTypes.STRING_8;
+package org.briarproject.data;
+
+import static org.briarproject.data.Types.END;
+import static org.briarproject.data.Types.FLOAT_64;
+import static org.briarproject.data.Types.INT_16;
+import static org.briarproject.data.Types.INT_32;
+import static org.briarproject.data.Types.INT_64;
+import static org.briarproject.data.Types.INT_8;
+import static org.briarproject.data.Types.LIST;
+import static org.briarproject.data.Types.MAP;
+import static org.briarproject.data.Types.NULL;
+import static org.briarproject.data.Types.RAW_16;
+import static org.briarproject.data.Types.RAW_32;
+import static org.briarproject.data.Types.RAW_8;
+import static org.briarproject.data.Types.STRING_16;
+import static org.briarproject.data.Types.STRING_32;
+import static org.briarproject.data.Types.STRING_8;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -22,8 +22,8 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.briarproject.api.FormatException;
-import org.briarproject.api.serial.Consumer;
-import org.briarproject.api.serial.Reader;
+import org.briarproject.api.data.Consumer;
+import org.briarproject.api.data.Reader;
 
 // This class is not thread-safe
 class ReaderImpl implements Reader {
@@ -133,7 +133,7 @@ class ReaderImpl implements Reader {
 	public boolean hasBoolean() throws IOException {
 		if(!hasLookahead) readLookahead();
 		if(eof) return false;
-		return next == ObjectTypes.BOOLEAN;
+		return next == Types.BOOLEAN;
 	}
 
 	public boolean readBoolean() throws IOException {
diff --git a/briar-core/src/org/briarproject/serial/SerialModule.java b/briar-core/src/org/briarproject/data/SerialModule.java
similarity index 65%
rename from briar-core/src/org/briarproject/serial/SerialModule.java
rename to briar-core/src/org/briarproject/data/SerialModule.java
index 8c3ec51596e9641c31651e79358ff96949cbc035..b18f57fafb465fa06061e28c2ebe317f8943d607 100644
--- a/briar-core/src/org/briarproject/serial/SerialModule.java
+++ b/briar-core/src/org/briarproject/data/SerialModule.java
@@ -1,7 +1,7 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.WriterFactory;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.WriterFactory;
 
 import com.google.inject.AbstractModule;
 
diff --git a/briar-core/src/org/briarproject/serial/ObjectTypes.java b/briar-core/src/org/briarproject/data/Types.java
similarity index 85%
rename from briar-core/src/org/briarproject/serial/ObjectTypes.java
rename to briar-core/src/org/briarproject/data/Types.java
index 69bd14174f9ccfe6e7d91244c741cdae0bbb311d..ae64f4967388b5efde12d16d93d41edcc97b7087 100644
--- a/briar-core/src/org/briarproject/serial/ObjectTypes.java
+++ b/briar-core/src/org/briarproject/data/Types.java
@@ -1,6 +1,6 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
-interface ObjectTypes {
+interface Types {
 
 	byte NULL = 0x00;
 	byte BOOLEAN = 0x11;
diff --git a/briar-core/src/org/briarproject/serial/WriterFactoryImpl.java b/briar-core/src/org/briarproject/data/WriterFactoryImpl.java
similarity index 56%
rename from briar-core/src/org/briarproject/serial/WriterFactoryImpl.java
rename to briar-core/src/org/briarproject/data/WriterFactoryImpl.java
index f3aaf738d8d6badf0ce9054e3dcbb3c38bf4f8b8..d8e651d78f9564aeb52b21fdb3901137f1def768 100644
--- a/briar-core/src/org/briarproject/serial/WriterFactoryImpl.java
+++ b/briar-core/src/org/briarproject/data/WriterFactoryImpl.java
@@ -1,9 +1,9 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
 import java.io.OutputStream;
 
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 
 class WriterFactoryImpl implements WriterFactory {
 
diff --git a/briar-core/src/org/briarproject/serial/WriterImpl.java b/briar-core/src/org/briarproject/data/WriterImpl.java
similarity index 79%
rename from briar-core/src/org/briarproject/serial/WriterImpl.java
rename to briar-core/src/org/briarproject/data/WriterImpl.java
index 4b7a2de9371130eeafe4143cc85e4473a14bd586..fa6c066345ef2daa50439216bad9c3e2434cc634 100644
--- a/briar-core/src/org/briarproject/serial/WriterImpl.java
+++ b/briar-core/src/org/briarproject/data/WriterImpl.java
@@ -1,21 +1,21 @@
-package org.briarproject.serial;
-
-import static org.briarproject.serial.ObjectTypes.BOOLEAN;
-import static org.briarproject.serial.ObjectTypes.END;
-import static org.briarproject.serial.ObjectTypes.FLOAT_64;
-import static org.briarproject.serial.ObjectTypes.INT_16;
-import static org.briarproject.serial.ObjectTypes.INT_32;
-import static org.briarproject.serial.ObjectTypes.INT_64;
-import static org.briarproject.serial.ObjectTypes.INT_8;
-import static org.briarproject.serial.ObjectTypes.LIST;
-import static org.briarproject.serial.ObjectTypes.MAP;
-import static org.briarproject.serial.ObjectTypes.NULL;
-import static org.briarproject.serial.ObjectTypes.RAW_16;
-import static org.briarproject.serial.ObjectTypes.RAW_32;
-import static org.briarproject.serial.ObjectTypes.RAW_8;
-import static org.briarproject.serial.ObjectTypes.STRING_16;
-import static org.briarproject.serial.ObjectTypes.STRING_32;
-import static org.briarproject.serial.ObjectTypes.STRING_8;
+package org.briarproject.data;
+
+import static org.briarproject.data.Types.BOOLEAN;
+import static org.briarproject.data.Types.END;
+import static org.briarproject.data.Types.FLOAT_64;
+import static org.briarproject.data.Types.INT_16;
+import static org.briarproject.data.Types.INT_32;
+import static org.briarproject.data.Types.INT_64;
+import static org.briarproject.data.Types.INT_8;
+import static org.briarproject.data.Types.LIST;
+import static org.briarproject.data.Types.MAP;
+import static org.briarproject.data.Types.NULL;
+import static org.briarproject.data.Types.RAW_16;
+import static org.briarproject.data.Types.RAW_32;
+import static org.briarproject.data.Types.RAW_8;
+import static org.briarproject.data.Types.STRING_16;
+import static org.briarproject.data.Types.STRING_32;
+import static org.briarproject.data.Types.STRING_8;
 
 import java.io.IOException;
 import java.io.OutputStream;
@@ -26,8 +26,8 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.briarproject.api.Bytes;
-import org.briarproject.api.serial.Consumer;
-import org.briarproject.api.serial.Writer;
+import org.briarproject.api.data.Consumer;
+import org.briarproject.api.data.Writer;
 
 // This class is not thread-safe
 class WriterImpl implements Writer {
@@ -139,9 +139,9 @@ class WriterImpl implements Writer {
 	}
 
 	public void writeList(Collection<?> c) throws IOException {
-		write(ObjectTypes.LIST);
+		write(Types.LIST);
 		for(Object o : c) writeObject(o);
-		write(ObjectTypes.END);
+		write(Types.END);
 	}
 
 	private void writeObject(Object o) throws IOException {
diff --git a/briar-core/src/org/briarproject/invitation/AliceConnector.java b/briar-core/src/org/briarproject/invitation/AliceConnector.java
index e166398cc47af693512657fdb554b2cf7c59cbdd..1821590289cbca70dfc7b66cb9909e5ecdcd23ad 100644
--- a/briar-core/src/org/briarproject/invitation/AliceConnector.java
+++ b/briar-core/src/org/briarproject/invitation/AliceConnector.java
@@ -18,16 +18,16 @@ import org.briarproject.api.TransportProperties;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.KeyManager;
 import org.briarproject.api.crypto.PseudoRandom;
+import org.briarproject.api.data.Reader;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
diff --git a/briar-core/src/org/briarproject/invitation/BobConnector.java b/briar-core/src/org/briarproject/invitation/BobConnector.java
index 5dc5f1173791cf4c6b1a351ed576d1395cc33ab1..014ed752c9093e93e125df10ec21d00d0fdd4d2d 100644
--- a/briar-core/src/org/briarproject/invitation/BobConnector.java
+++ b/briar-core/src/org/briarproject/invitation/BobConnector.java
@@ -18,16 +18,16 @@ import org.briarproject.api.TransportProperties;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.KeyManager;
 import org.briarproject.api.crypto.PseudoRandom;
+import org.briarproject.api.data.Reader;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
diff --git a/briar-core/src/org/briarproject/invitation/Connector.java b/briar-core/src/org/briarproject/invitation/Connector.java
index 61191730dda40eeca1e416d34d21994956ff9999..cf85fc9f0346fb197555cfd1599184466cce766b 100644
--- a/briar-core/src/org/briarproject/invitation/Connector.java
+++ b/briar-core/src/org/briarproject/invitation/Connector.java
@@ -36,6 +36,10 @@ import org.briarproject.api.crypto.KeyParser;
 import org.briarproject.api.crypto.MessageDigest;
 import org.briarproject.api.crypto.PseudoRandom;
 import org.briarproject.api.crypto.Signature;
+import org.briarproject.api.data.Reader;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.db.NoSuchTransportException;
@@ -44,10 +48,6 @@ import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
 import org.briarproject.api.plugins.duplex.DuplexTransportConnection;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
 import org.briarproject.api.transport.Endpoint;
 import org.briarproject.api.transport.StreamReaderFactory;
diff --git a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
index 97bd39ddaa60dc5637a5852d2ba55c159348025d..7c676e520991a912d813e4a0a25bc01d44d9209f 100644
--- a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
+++ b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
@@ -23,6 +23,8 @@ import org.briarproject.api.TransportProperties;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.KeyManager;
 import org.briarproject.api.crypto.PseudoRandom;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.db.DbException;
 import org.briarproject.api.invitation.InvitationListener;
@@ -32,8 +34,6 @@ import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.PluginManager;
 import org.briarproject.api.plugins.duplex.DuplexPlugin;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
diff --git a/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java b/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
index 2cfae0a2fdcdeb593c61ca9ce22a57b4c385b312..6f460e8f7291409eac077b6dc7a9e4bf10698d3c 100644
--- a/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
+++ b/briar-core/src/org/briarproject/invitation/InvitationTaskFactoryImpl.java
@@ -6,14 +6,14 @@ import org.briarproject.api.AuthorFactory;
 import org.briarproject.api.AuthorId;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.KeyManager;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.db.DatabaseComponent;
 import org.briarproject.api.invitation.InvitationTask;
 import org.briarproject.api.invitation.InvitationTaskFactory;
 import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.plugins.ConnectionManager;
 import org.briarproject.api.plugins.PluginManager;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.api.system.Clock;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
diff --git a/briar-core/src/org/briarproject/messaging/AuthorFactoryImpl.java b/briar-core/src/org/briarproject/messaging/AuthorFactoryImpl.java
index e9c05a92a1c912e30507c746c425a11401e3de9e..0566da46d76a09033d08ffc68f9ea64f68caa6a3 100644
--- a/briar-core/src/org/briarproject/messaging/AuthorFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/AuthorFactoryImpl.java
@@ -11,8 +11,8 @@ import org.briarproject.api.AuthorId;
 import org.briarproject.api.LocalAuthor;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.system.Clock;
 
 class AuthorFactoryImpl implements AuthorFactory {
diff --git a/briar-core/src/org/briarproject/messaging/AuthorReader.java b/briar-core/src/org/briarproject/messaging/AuthorReader.java
index cdb1c958aee50458f7cc31aaf735f1abf9aa4ffc..1ac309eea86bf3d4c32d1cf0d29d909c677c1e59 100644
--- a/briar-core/src/org/briarproject/messaging/AuthorReader.java
+++ b/briar-core/src/org/briarproject/messaging/AuthorReader.java
@@ -10,9 +10,8 @@ import org.briarproject.api.AuthorId;
 import org.briarproject.api.FormatException;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
-import org.briarproject.api.serial.DigestingConsumer;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ObjectReader;
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.Reader;
 
 class AuthorReader implements ObjectReader<Author> {
 
diff --git a/briar-api/src/org/briarproject/api/serial/CopyingConsumer.java b/briar-core/src/org/briarproject/messaging/CopyingConsumer.java
similarity index 77%
rename from briar-api/src/org/briarproject/api/serial/CopyingConsumer.java
rename to briar-core/src/org/briarproject/messaging/CopyingConsumer.java
index b06e0a8437abca9e0ccd0415c363257584732ba6..76bbd49adcf78999ac71950c01716ef6062f8de7 100644
--- a/briar-api/src/org/briarproject/api/serial/CopyingConsumer.java
+++ b/briar-core/src/org/briarproject/messaging/CopyingConsumer.java
@@ -1,10 +1,12 @@
-package org.briarproject.api.serial;
+package org.briarproject.messaging;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import org.briarproject.api.data.Consumer;
+
 /** A consumer that makes a copy of the bytes consumed. */
-public class CopyingConsumer implements Consumer {
+class CopyingConsumer implements Consumer {
 
 	private final ByteArrayOutputStream out = new ByteArrayOutputStream();
 
diff --git a/briar-api/src/org/briarproject/api/serial/CountingConsumer.java b/briar-core/src/org/briarproject/messaging/CountingConsumer.java
similarity index 83%
rename from briar-api/src/org/briarproject/api/serial/CountingConsumer.java
rename to briar-core/src/org/briarproject/messaging/CountingConsumer.java
index 8c41899c61385c8ee11898dddbb17eef62f87a6b..a9971a901504d6c2171013a08a847ea280deccd5 100644
--- a/briar-api/src/org/briarproject/api/serial/CountingConsumer.java
+++ b/briar-core/src/org/briarproject/messaging/CountingConsumer.java
@@ -1,14 +1,15 @@
-package org.briarproject.api.serial;
+package org.briarproject.messaging;
 
 import java.io.IOException;
 
 import org.briarproject.api.FormatException;
+import org.briarproject.api.data.Consumer;
 
 /**
  * A consumer that counts the number of bytes consumed and throws a
  * FormatException if the count exceeds a given limit.
  */
-public class CountingConsumer implements Consumer {
+class CountingConsumer implements Consumer {
 
 	private final long limit;
 	private long count = 0;
diff --git a/briar-api/src/org/briarproject/api/serial/DigestingConsumer.java b/briar-core/src/org/briarproject/messaging/DigestingConsumer.java
similarity index 76%
rename from briar-api/src/org/briarproject/api/serial/DigestingConsumer.java
rename to briar-core/src/org/briarproject/messaging/DigestingConsumer.java
index 1d9420b54eabdf16eb98d2f12bd65c3665858884..e9bb102eb0f0a10abd7078adcdb0168c539a28d4 100644
--- a/briar-api/src/org/briarproject/api/serial/DigestingConsumer.java
+++ b/briar-core/src/org/briarproject/messaging/DigestingConsumer.java
@@ -1,9 +1,10 @@
-package org.briarproject.api.serial;
+package org.briarproject.messaging;
 
 import org.briarproject.api.crypto.MessageDigest;
+import org.briarproject.api.data.Consumer;
 
 /** A consumer that passes its input through a message digest. */
-public class DigestingConsumer implements Consumer {
+class DigestingConsumer implements Consumer {
 
 	private final MessageDigest messageDigest;
 
diff --git a/briar-core/src/org/briarproject/messaging/GroupFactoryImpl.java b/briar-core/src/org/briarproject/messaging/GroupFactoryImpl.java
index b2f3e0cad9e0895def2e98353ae03d1f96a5318e..04afa129e09795cdb0fc2ed291548edc21e3baae 100644
--- a/briar-core/src/org/briarproject/messaging/GroupFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/GroupFactoryImpl.java
@@ -9,11 +9,11 @@ import javax.inject.Inject;
 
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.messaging.GroupId;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 
 class GroupFactoryImpl implements GroupFactory {
 
diff --git a/briar-core/src/org/briarproject/messaging/GroupReader.java b/briar-core/src/org/briarproject/messaging/GroupReader.java
index 1bfd090f8dbc03b9d784a713eeff50a389a5b70a..db5f09b68fea763a516ab11c6a11eb48ac9c9ff9 100644
--- a/briar-core/src/org/briarproject/messaging/GroupReader.java
+++ b/briar-core/src/org/briarproject/messaging/GroupReader.java
@@ -8,11 +8,10 @@ import java.io.IOException;
 import org.briarproject.api.FormatException;
 import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.Reader;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.GroupId;
-import org.briarproject.api.serial.DigestingConsumer;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ObjectReader;
 
 class GroupReader implements ObjectReader<Group> {
 
diff --git a/briar-core/src/org/briarproject/messaging/MessageFactoryImpl.java b/briar-core/src/org/briarproject/messaging/MessageFactoryImpl.java
index 03a1b7d3992cc0f192569844037bfa31c7878f55..d3e6651fb5e416db243fbf84954d69aa89c35c49 100644
--- a/briar-core/src/org/briarproject/messaging/MessageFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/MessageFactoryImpl.java
@@ -18,16 +18,13 @@ import org.briarproject.api.crypto.CryptoComponent;
 import org.briarproject.api.crypto.MessageDigest;
 import org.briarproject.api.crypto.PrivateKey;
 import org.briarproject.api.crypto.Signature;
+import org.briarproject.api.data.Consumer;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.Message;
 import org.briarproject.api.messaging.MessageFactory;
 import org.briarproject.api.messaging.MessageId;
-import org.briarproject.api.serial.Consumer;
-import org.briarproject.api.serial.CountingConsumer;
-import org.briarproject.api.serial.DigestingConsumer;
-import org.briarproject.api.serial.SigningConsumer;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.util.StringUtils;
 
 class MessageFactoryImpl implements MessageFactory {
diff --git a/briar-core/src/org/briarproject/messaging/MessageReader.java b/briar-core/src/org/briarproject/messaging/MessageReader.java
index 6069eb8d49a54ec05313ea50784b7bba70165236..1c7ba8bc74b8b7535ae9d591fa54f04cae56d383 100644
--- a/briar-core/src/org/briarproject/messaging/MessageReader.java
+++ b/briar-core/src/org/briarproject/messaging/MessageReader.java
@@ -11,13 +11,11 @@ import java.io.IOException;
 import org.briarproject.api.Author;
 import org.briarproject.api.FormatException;
 import org.briarproject.api.UniqueId;
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.Reader;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.MessageId;
 import org.briarproject.api.messaging.UnverifiedMessage;
-import org.briarproject.api.serial.CopyingConsumer;
-import org.briarproject.api.serial.CountingConsumer;
-import org.briarproject.api.serial.ObjectReader;
-import org.briarproject.api.serial.Reader;
 
 class MessageReader implements ObjectReader<UnverifiedMessage> {
 
diff --git a/briar-core/src/org/briarproject/messaging/MessagingModule.java b/briar-core/src/org/briarproject/messaging/MessagingModule.java
index a209155b95fa79941f59a6983f0f1c5dec6cfc37..1b58a8e57725588d33e5b32babf3a86fdbe05526 100644
--- a/briar-core/src/org/briarproject/messaging/MessagingModule.java
+++ b/briar-core/src/org/briarproject/messaging/MessagingModule.java
@@ -5,6 +5,7 @@ import javax.inject.Singleton;
 import org.briarproject.api.Author;
 import org.briarproject.api.AuthorFactory;
 import org.briarproject.api.crypto.CryptoComponent;
+import org.briarproject.api.data.ObjectReader;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.GroupFactory;
 import org.briarproject.api.messaging.MessageFactory;
@@ -14,7 +15,6 @@ import org.briarproject.api.messaging.PacketReaderFactory;
 import org.briarproject.api.messaging.PacketWriterFactory;
 import org.briarproject.api.messaging.SubscriptionUpdate;
 import org.briarproject.api.messaging.UnverifiedMessage;
-import org.briarproject.api.serial.ObjectReader;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
diff --git a/briar-core/src/org/briarproject/messaging/PacketReaderFactoryImpl.java b/briar-core/src/org/briarproject/messaging/PacketReaderFactoryImpl.java
index 5e9879554a002830efb38549d19a85ce72b438b2..1bca8fcee6e5c313608cc2503673f8910be196e2 100644
--- a/briar-core/src/org/briarproject/messaging/PacketReaderFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketReaderFactoryImpl.java
@@ -4,12 +4,12 @@ import java.io.InputStream;
 
 import javax.inject.Inject;
 
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.ReaderFactory;
 import org.briarproject.api.messaging.PacketReader;
 import org.briarproject.api.messaging.PacketReaderFactory;
 import org.briarproject.api.messaging.SubscriptionUpdate;
 import org.briarproject.api.messaging.UnverifiedMessage;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.ObjectReader;
 
 class PacketReaderFactoryImpl implements PacketReaderFactory {
 
diff --git a/briar-core/src/org/briarproject/messaging/PacketReaderImpl.java b/briar-core/src/org/briarproject/messaging/PacketReaderImpl.java
index 8a13733f4e4efc31bfe3b5b7c7d0852002319686..e23605654cb518928335725082738c0216f98d6a 100644
--- a/briar-core/src/org/briarproject/messaging/PacketReaderImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketReaderImpl.java
@@ -30,6 +30,9 @@ import org.briarproject.api.FormatException;
 import org.briarproject.api.TransportId;
 import org.briarproject.api.TransportProperties;
 import org.briarproject.api.UniqueId;
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.Reader;
+import org.briarproject.api.data.ReaderFactory;
 import org.briarproject.api.messaging.Ack;
 import org.briarproject.api.messaging.MessageId;
 import org.briarproject.api.messaging.Offer;
@@ -42,9 +45,6 @@ import org.briarproject.api.messaging.SubscriptionUpdate;
 import org.briarproject.api.messaging.TransportAck;
 import org.briarproject.api.messaging.TransportUpdate;
 import org.briarproject.api.messaging.UnverifiedMessage;
-import org.briarproject.api.serial.Reader;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.ObjectReader;
 import org.briarproject.util.ByteUtils;
 
 // This class is not thread-safe
diff --git a/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java b/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
index 018b1bddffc7f18c8f2aa1ac66d51ef37e67f519..e3d771774157f7c7c32289b3609c84ec1287aea2 100644
--- a/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
@@ -4,9 +4,9 @@ import java.io.OutputStream;
 
 import javax.inject.Inject;
 
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.messaging.PacketWriter;
 import org.briarproject.api.messaging.PacketWriterFactory;
-import org.briarproject.api.serial.WriterFactory;
 
 class PacketWriterFactoryImpl implements PacketWriterFactory {
 
diff --git a/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java b/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
index 7db8bf2a38310b9903231240ef9ef0635653baf7..c2cf06003dc646830ca686cc927239d820ab40a1 100644
--- a/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
@@ -1,5 +1,8 @@
 package org.briarproject.messaging;
 
+import static org.briarproject.api.data.DataConstants.LIST_END_LENGTH;
+import static org.briarproject.api.data.DataConstants.LIST_START_LENGTH;
+import static org.briarproject.api.data.DataConstants.UNIQUE_ID_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.HEADER_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.MAX_PAYLOAD_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.PROTOCOL_VERSION;
@@ -12,14 +15,13 @@ import static org.briarproject.api.messaging.PacketTypes.SUBSCRIPTION_ACK;
 import static org.briarproject.api.messaging.PacketTypes.SUBSCRIPTION_UPDATE;
 import static org.briarproject.api.messaging.PacketTypes.TRANSPORT_ACK;
 import static org.briarproject.api.messaging.PacketTypes.TRANSPORT_UPDATE;
-import static org.briarproject.api.serial.SerialConstants.LIST_END_LENGTH;
-import static org.briarproject.api.serial.SerialConstants.LIST_START_LENGTH;
-import static org.briarproject.api.serial.SerialConstants.UNIQUE_ID_LENGTH;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
 import org.briarproject.api.messaging.Ack;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.MessageId;
@@ -33,8 +35,6 @@ import org.briarproject.api.messaging.SubscriptionAck;
 import org.briarproject.api.messaging.SubscriptionUpdate;
 import org.briarproject.api.messaging.TransportAck;
 import org.briarproject.api.messaging.TransportUpdate;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.util.ByteUtils;
 
 // This class is not thread-safe
diff --git a/briar-api/src/org/briarproject/api/serial/SigningConsumer.java b/briar-core/src/org/briarproject/messaging/SigningConsumer.java
similarity index 75%
rename from briar-api/src/org/briarproject/api/serial/SigningConsumer.java
rename to briar-core/src/org/briarproject/messaging/SigningConsumer.java
index ac6a28620827eabc0ef2e4ec242846d00d329110..137cd8c61498ab27a52f7a1573d15c3b688a8b07 100644
--- a/briar-api/src/org/briarproject/api/serial/SigningConsumer.java
+++ b/briar-core/src/org/briarproject/messaging/SigningConsumer.java
@@ -1,9 +1,10 @@
-package org.briarproject.api.serial;
+package org.briarproject.messaging;
 
 import org.briarproject.api.crypto.Signature;
+import org.briarproject.api.data.Consumer;
 
 /** A consumer that passes its input through a signature. */
-public class SigningConsumer implements Consumer {
+class SigningConsumer implements Consumer {
 
 	private final Signature signature;
 
diff --git a/briar-core/src/org/briarproject/messaging/SubscriptionUpdateReader.java b/briar-core/src/org/briarproject/messaging/SubscriptionUpdateReader.java
index 67d7dd88c55db3a1aa825e52f3ac7d2583227dab..1346b2349fbffde8f999b2276ff6844bed872d5f 100644
--- a/briar-core/src/org/briarproject/messaging/SubscriptionUpdateReader.java
+++ b/briar-core/src/org/briarproject/messaging/SubscriptionUpdateReader.java
@@ -11,13 +11,12 @@ import java.util.List;
 import java.util.Set;
 
 import org.briarproject.api.FormatException;
+import org.briarproject.api.data.Consumer;
+import org.briarproject.api.data.ObjectReader;
+import org.briarproject.api.data.Reader;
 import org.briarproject.api.messaging.Group;
 import org.briarproject.api.messaging.GroupId;
 import org.briarproject.api.messaging.SubscriptionUpdate;
-import org.briarproject.api.serial.Consumer;
-import org.briarproject.api.serial.CountingConsumer;
-import org.briarproject.api.serial.ObjectReader;
-import org.briarproject.api.serial.Reader;
 
 class SubscriptionUpdateReader implements ObjectReader<SubscriptionUpdate> {
 
diff --git a/briar-tests/build.xml b/briar-tests/build.xml
index eb4766a090b7d734a50b0f2c83bc06af304eccc6..338812a5ddf9e248b2ad000f1b753768625c98c2 100644
--- a/briar-tests/build.xml
+++ b/briar-tests/build.xml
@@ -103,6 +103,8 @@
 			<test name="org.briarproject.crypto.PasswordStrengthEstimatorImplTest"/>
 			<test name='org.briarproject.crypto.StreamDecrypterImplTest'/>
 			<test name='org.briarproject.crypto.StreamEncrypterImplTest'/>
+			<test name='org.briarproject.data.ReaderImplTest'/>
+			<test name='org.briarproject.data.WriterImplTest'/>
 			<test name='org.briarproject.db.BasicH2Test'/>
 			<test name='org.briarproject.db.DatabaseCleanerImplTest'/>
 			<test name='org.briarproject.db.DatabaseComponentImplTest'/>
@@ -124,8 +126,6 @@
 			<test name='org.briarproject.plugins.modem.CountryCodesTest'/>
 			<test name='org.briarproject.plugins.modem.ModemPluginTest'/>
 			<test name='org.briarproject.plugins.tcp.LanTcpPluginTest'/>
-			<test name='org.briarproject.serial.ReaderImplTest'/>
-			<test name='org.briarproject.serial.WriterImplTest'/>
 			<test name='org.briarproject.system.LinuxSeedProviderTest'/>
 			<test name='org.briarproject.transport.KeyManagerImplTest'/>
 			<test name='org.briarproject.transport.KeyRotationIntegrationTest'/>
diff --git a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
index 633a4929ad23c580685f96f2a63cbc05d20682ca..4fcb7dfb61e480756d6d1743af706e4e44726c74 100644
--- a/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
+++ b/briar-tests/src/org/briarproject/ProtocolIntegrationTest.java
@@ -39,10 +39,10 @@ import org.briarproject.api.transport.StreamContext;
 import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
 import org.briarproject.crypto.CryptoModule;
+import org.briarproject.data.SerialModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
 import org.briarproject.messaging.MessagingModule;
-import org.briarproject.serial.SerialModule;
 import org.briarproject.transport.TransportModule;
 import org.junit.Test;
 
diff --git a/briar-tests/src/org/briarproject/serial/ReaderImplTest.java b/briar-tests/src/org/briarproject/data/ReaderImplTest.java
similarity index 99%
rename from briar-tests/src/org/briarproject/serial/ReaderImplTest.java
rename to briar-tests/src/org/briarproject/data/ReaderImplTest.java
index 6b093c2e02dd31740fcaa2bd6b75f21b9cc94950..d9e389ab8909217a2c51c58ff4c3c10d676594b1 100644
--- a/briar-tests/src/org/briarproject/serial/ReaderImplTest.java
+++ b/briar-tests/src/org/briarproject/data/ReaderImplTest.java
@@ -1,4 +1,4 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
 import static org.junit.Assert.assertArrayEquals;
 
diff --git a/briar-tests/src/org/briarproject/serial/WriterImplTest.java b/briar-tests/src/org/briarproject/data/WriterImplTest.java
similarity index 99%
rename from briar-tests/src/org/briarproject/serial/WriterImplTest.java
rename to briar-tests/src/org/briarproject/data/WriterImplTest.java
index 4a73af42c6a97a7279b6dcc31130f640e920521a..ab145c0ad427922801a895211aa3ed5bf786196c 100644
--- a/briar-tests/src/org/briarproject/serial/WriterImplTest.java
+++ b/briar-tests/src/org/briarproject/data/WriterImplTest.java
@@ -1,4 +1,4 @@
-package org.briarproject.serial;
+package org.briarproject.data;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/briar-tests/src/org/briarproject/messaging/ConstantsTest.java b/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
index affa0f573d418ed156caa8da7d1df368ca4157b0..9839831582e1ca51d488d7b08c22a196ad6c3fe5 100644
--- a/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
+++ b/briar-tests/src/org/briarproject/messaging/ConstantsTest.java
@@ -44,9 +44,9 @@ import org.briarproject.api.messaging.Request;
 import org.briarproject.api.messaging.SubscriptionUpdate;
 import org.briarproject.api.messaging.TransportUpdate;
 import org.briarproject.crypto.CryptoModule;
+import org.briarproject.data.SerialModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
-import org.briarproject.serial.SerialModule;
 import org.junit.Test;
 
 import com.google.inject.Guice;
diff --git a/briar-tests/src/org/briarproject/messaging/ConsumersTest.java b/briar-tests/src/org/briarproject/messaging/ConsumersTest.java
index f214336067506235332cb8f7407119907a07b658..a9470f5cd72729f9ff0077f35ef6164b7b25a6eb 100644
--- a/briar-tests/src/org/briarproject/messaging/ConsumersTest.java
+++ b/briar-tests/src/org/briarproject/messaging/ConsumersTest.java
@@ -8,9 +8,6 @@ import java.util.Random;
 import org.briarproject.BriarTestCase;
 import org.briarproject.api.FormatException;
 import org.briarproject.api.crypto.MessageDigest;
-import org.briarproject.api.serial.CopyingConsumer;
-import org.briarproject.api.serial.CountingConsumer;
-import org.briarproject.api.serial.DigestingConsumer;
 import org.junit.Test;
 
 public class ConsumersTest extends BriarTestCase {
diff --git a/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java b/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
index dfd0e0ac245c1237bf5e07594381a2d9b25bee10..50ccabbd45a6d499ddcb65091b4399def2ba365c 100644
--- a/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
+++ b/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
@@ -1,12 +1,12 @@
 package org.briarproject.messaging;
 
+import static org.briarproject.api.data.DataConstants.LIST_END_LENGTH;
+import static org.briarproject.api.data.DataConstants.UNIQUE_ID_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.HEADER_LENGTH;
 import static org.briarproject.api.messaging.MessagingConstants.MAX_PAYLOAD_LENGTH;
 import static org.briarproject.api.messaging.PacketTypes.ACK;
 import static org.briarproject.api.messaging.PacketTypes.OFFER;
 import static org.briarproject.api.messaging.PacketTypes.REQUEST;
-import static org.briarproject.api.serial.SerialConstants.LIST_END_LENGTH;
-import static org.briarproject.api.serial.SerialConstants.UNIQUE_ID_LENGTH;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -14,10 +14,10 @@ import java.io.ByteArrayOutputStream;
 import org.briarproject.BriarTestCase;
 import org.briarproject.TestUtils;
 import org.briarproject.api.FormatException;
-import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.Writer;
-import org.briarproject.api.serial.WriterFactory;
-import org.briarproject.serial.SerialModule;
+import org.briarproject.api.data.ReaderFactory;
+import org.briarproject.api.data.Writer;
+import org.briarproject.api.data.WriterFactory;
+import org.briarproject.data.SerialModule;
 import org.briarproject.util.ByteUtils;
 import org.junit.Test;
 
diff --git a/briar-tests/src/org/briarproject/messaging/SimplexMessagingIntegrationTest.java b/briar-tests/src/org/briarproject/messaging/SimplexMessagingIntegrationTest.java
index 75583607001c8e619b3dd5771deb991acec71b8a..38913a03c74906c1ddea7392a36f8ba4af4c8329 100644
--- a/briar-tests/src/org/briarproject/messaging/SimplexMessagingIntegrationTest.java
+++ b/briar-tests/src/org/briarproject/messaging/SimplexMessagingIntegrationTest.java
@@ -44,10 +44,10 @@ import org.briarproject.api.transport.StreamReaderFactory;
 import org.briarproject.api.transport.StreamWriterFactory;
 import org.briarproject.api.transport.TagRecogniser;
 import org.briarproject.crypto.CryptoModule;
+import org.briarproject.data.SerialModule;
 import org.briarproject.db.DatabaseModule;
 import org.briarproject.event.EventModule;
 import org.briarproject.plugins.ImmediateExecutor;
-import org.briarproject.serial.SerialModule;
 import org.briarproject.transport.TransportModule;
 import org.junit.After;
 import org.junit.Before;