public APacket copy() {
		log.finer("Copying a Packet!");
		APacket p = null;
		try {
			p = this.getClass().newInstance();
			DataOut dataOut = DataOut.newInstance();
			writeToData(dataOut);
			byte[] b = dataOut.getBytes();
			p.readFromData(DataIn.newInstance(b));
		} catch(InstantiationException | IllegalAccessException | IOException e) {
			e.printStackTrace();
		}
		return p;
	}