@Override
	public byte[] getBytes() {
		VariableLengthIntegerMessage length = getMessageFactory().createVariableLengthIntegerMessage(ints.length);

		VariableLengthIntegerMessage[] varInts = new VariableLengthIntegerMessage[ints.length];

		for (int i = 0; i < ints.length; i++) {
			varInts[i] = getMessageFactory().createVariableLengthIntegerMessage(ints[i]);
		}

		ByteArrayOutputStream b = new ByteArrayOutputStream();

		try {
			b.write(length.getBytes());

			for (VariableLengthIntegerMessage l : varInts) {
				b.write(l.getBytes());
			}
		} catch (IOException e) {
			LOG.log(Level.SEVERE, "Could not write bytes!", e);
			System.exit(1);
		}

		return b.toByteArray();
	}