diff --git a/briar-api/src/org/briarproject/api/serial/SerialComponent.java b/briar-api/src/org/briarproject/api/serial/SerialComponent.java
deleted file mode 100644
index ecaf2c365779802d55faf4594f99386183ffed11..0000000000000000000000000000000000000000
--- a/briar-api/src/org/briarproject/api/serial/SerialComponent.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.briarproject.api.serial;
-
-public interface SerialComponent {
-
-	int getSerialisedListStartLength();
-
-	int getSerialisedListEndLength();
-
-	int getSerialisedUniqueIdLength();
-}
diff --git a/briar-api/src/org/briarproject/api/serial/SerialConstants.java b/briar-api/src/org/briarproject/api/serial/SerialConstants.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf34d8cdc28efbdb79d9112a302e051139521a5b
--- /dev/null
+++ b/briar-api/src/org/briarproject/api/serial/SerialConstants.java
@@ -0,0 +1,12 @@
+package org.briarproject.api.serial;
+
+import org.briarproject.api.UniqueId;
+
+public interface SerialConstants {
+
+	int LIST_START_LENGTH = 1;
+
+	int LIST_END_LENGTH = 1;
+
+	int UNIQUE_ID_LENGTH = 2 + UniqueId.LENGTH;
+}
diff --git a/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java b/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
index 46880fc0c5bbd5b58bc8980f47539acf87b6fe33..018b1bddffc7f18c8f2aa1ac66d51ef37e67f519 100644
--- a/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketWriterFactoryImpl.java
@@ -6,22 +6,18 @@ import javax.inject.Inject;
 
 import org.briarproject.api.messaging.PacketWriter;
 import org.briarproject.api.messaging.PacketWriterFactory;
-import org.briarproject.api.serial.SerialComponent;
 import org.briarproject.api.serial.WriterFactory;
 
 class PacketWriterFactoryImpl implements PacketWriterFactory {
 
-	private final SerialComponent serial;
 	private final WriterFactory writerFactory;
 
 	@Inject
-	PacketWriterFactoryImpl(SerialComponent serial,
-			WriterFactory writerFactory) {
-		this.serial = serial;
+	PacketWriterFactoryImpl(WriterFactory writerFactory) {
 		this.writerFactory = writerFactory;
 	}
 
 	public PacketWriter createPacketWriter(OutputStream out) {
-		return new PacketWriterImpl(serial, writerFactory, out);
+		return new PacketWriterImpl(writerFactory, out);
 	}
 }
diff --git a/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java b/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
index 68787848ab104a5fa3ac97bf03f8331a9f2b6cec..7db8bf2a38310b9903231240ef9ef0635653baf7 100644
--- a/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
+++ b/briar-core/src/org/briarproject/messaging/PacketWriterImpl.java
@@ -12,6 +12,9 @@ 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;
@@ -30,7 +33,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.SerialComponent;
 import org.briarproject.api.serial.Writer;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.util.ByteUtils;
@@ -38,15 +40,12 @@ import org.briarproject.util.ByteUtils;
 // This class is not thread-safe
 class PacketWriterImpl implements PacketWriter {
 
-	private final SerialComponent serial;
 	private final WriterFactory writerFactory;
 	private final OutputStream out;
 	private final byte[] header;
 	private final ByteArrayOutputStream payload;
 
-	PacketWriterImpl(SerialComponent serial, WriterFactory writerFactory,
-			OutputStream out) {
-		this.serial = serial;
+	PacketWriterImpl(WriterFactory writerFactory, OutputStream out) {
 		this.writerFactory = writerFactory;
 		this.out = out;
 		header = new byte[HEADER_LENGTH];
@@ -69,10 +68,8 @@ class PacketWriterImpl implements PacketWriter {
 	private int getMaxMessagesForPacket(long capacity) {
 		int payload = (int) Math.min(capacity - HEADER_LENGTH,
 				MAX_PAYLOAD_LENGTH);
-		int overhead = serial.getSerialisedListStartLength() * 2
-				+ serial.getSerialisedListEndLength() * 2;
-		int idLength = serial.getSerialisedUniqueIdLength();
-		return (payload - overhead) / idLength;
+		int overhead = LIST_START_LENGTH * 2 + LIST_END_LENGTH * 2;
+		return (payload - overhead) / UNIQUE_ID_LENGTH;
 	}
 
 	private void writePacket(byte packetType) throws IOException {
diff --git a/briar-core/src/org/briarproject/serial/SerialComponentImpl.java b/briar-core/src/org/briarproject/serial/SerialComponentImpl.java
deleted file mode 100644
index ce6516260e5c65e2b6a7976985fa2c5ca8c9363f..0000000000000000000000000000000000000000
--- a/briar-core/src/org/briarproject/serial/SerialComponentImpl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.briarproject.serial;
-
-import org.briarproject.api.UniqueId;
-import org.briarproject.api.serial.SerialComponent;
-
-class SerialComponentImpl implements SerialComponent {
-
-	public int getSerialisedListStartLength() {
-		// LIST tag
-		return 1;
-	}
-
-	public int getSerialisedListEndLength() {
-		// END tag
-		return 1;
-	}
-
-	public int getSerialisedUniqueIdLength() {
-		// BYTES_8, BYTES_16 or BYTES_32 tag, length, bytes
-		return 1 + getLengthBytes(UniqueId.LENGTH) + UniqueId.LENGTH;
-	}
-
-	private int getLengthBytes(int length) {
-		if(length <= Byte.MAX_VALUE) return 1;
-		if(length <= Short.MAX_VALUE) return 2;
-		return 4;
-	}
-}
diff --git a/briar-core/src/org/briarproject/serial/SerialModule.java b/briar-core/src/org/briarproject/serial/SerialModule.java
index ca4c87480b6d23f78f531535362c2281438e16b4..8c3ec51596e9641c31651e79358ff96949cbc035 100644
--- a/briar-core/src/org/briarproject/serial/SerialModule.java
+++ b/briar-core/src/org/briarproject/serial/SerialModule.java
@@ -1,19 +1,15 @@
 package org.briarproject.serial;
 
-import javax.inject.Singleton;
-
 import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.SerialComponent;
 import org.briarproject.api.serial.WriterFactory;
 
 import com.google.inject.AbstractModule;
 
 public class SerialModule extends AbstractModule {
 
+	@Override
 	protected void configure() {
 		bind(ReaderFactory.class).to(ReaderFactoryImpl.class);
-		bind(SerialComponent.class).to(
-				SerialComponentImpl.class).in(Singleton.class);
 		bind(WriterFactory.class).to(WriterFactoryImpl.class);
 	}
 }
diff --git a/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java b/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
index ec3562250a64237f926b4f02a65f7e8994ae46c9..dfd0e0ac245c1237bf5e07594381a2d9b25bee10 100644
--- a/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
+++ b/briar-tests/src/org/briarproject/messaging/PacketReaderImplTest.java
@@ -5,6 +5,8 @@ import static org.briarproject.api.messaging.MessagingConstants.MAX_PAYLOAD_LENG
 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;
@@ -13,7 +15,6 @@ import org.briarproject.BriarTestCase;
 import org.briarproject.TestUtils;
 import org.briarproject.api.FormatException;
 import org.briarproject.api.serial.ReaderFactory;
-import org.briarproject.api.serial.SerialComponent;
 import org.briarproject.api.serial.Writer;
 import org.briarproject.api.serial.WriterFactory;
 import org.briarproject.serial.SerialModule;
@@ -27,13 +28,11 @@ public class PacketReaderImplTest extends BriarTestCase {
 
 	// FIXME: This is an integration test, not a unit test
 
-	private final SerialComponent serial;
 	private final ReaderFactory readerFactory;
 	private final WriterFactory writerFactory;
 
 	public PacketReaderImplTest() throws Exception {
 		Injector i = Guice.createInjector(new SerialModule());
-		serial = i.getInstance(SerialComponent.class);
 		readerFactory = i.getInstance(ReaderFactory.class);
 		writerFactory = i.getInstance(WriterFactory.class);
 	}
@@ -143,8 +142,7 @@ public class PacketReaderImplTest extends BriarTestCase {
 		Writer w = writerFactory.createWriter(out);
 		w.writeListStart();
 		w.writeListStart();
-		while(out.size() + serial.getSerialisedUniqueIdLength()
-				+ serial.getSerialisedListEndLength() * 2
+		while(out.size() + UNIQUE_ID_LENGTH + LIST_END_LENGTH * 2
 				< HEADER_LENGTH + MAX_PAYLOAD_LENGTH) {
 			w.writeBytes(TestUtils.getRandomId());
 		}
@@ -178,8 +176,7 @@ public class PacketReaderImplTest extends BriarTestCase {
 		Writer w = writerFactory.createWriter(out);
 		w.writeListStart();
 		w.writeListStart();
-		while(out.size() + serial.getSerialisedUniqueIdLength()
-				+ serial.getSerialisedListEndLength() * 2
+		while(out.size() + UNIQUE_ID_LENGTH + LIST_END_LENGTH * 2
 				< HEADER_LENGTH + MAX_PAYLOAD_LENGTH) {
 			w.writeBytes(TestUtils.getRandomId());
 		}
@@ -213,8 +210,7 @@ public class PacketReaderImplTest extends BriarTestCase {
 		Writer w = writerFactory.createWriter(out);
 		w.writeListStart();
 		w.writeListStart();
-		while(out.size() + serial.getSerialisedUniqueIdLength()
-				+ serial.getSerialisedListEndLength() * 2
+		while(out.size() + UNIQUE_ID_LENGTH + LIST_END_LENGTH * 2
 				< HEADER_LENGTH + MAX_PAYLOAD_LENGTH) {
 			w.writeBytes(TestUtils.getRandomId());
 		}