docs: private static CEMI create(int msgCode, IndividualAddress src, KNXAddress dst,
  		byte[] data, CEMILData original, boolean ext)
  	{
  		final int mc = msgCode != 0 ? msgCode : original.getMessageCode();
  		final IndividualAddress s = src != null ? src : original.getSource();
  		final KNXAddress d = dst != null ? dst : original.getDestination();
  		final byte[] content = data != null ? data : original.getPayload();
  		if (original instanceof CEMILDataEx) {
  			final CEMILDataEx f = (CEMILDataEx) original;
  			final CEMILDataEx copy =
  				new CEMILDataEx(mc, s, d, content, f.getPriority(), f.isRepetition(), f
  					.isDomainBroadcast(), f.isAckRequested(), f.getHopCount());
  			// copy additional info
  			final List l = f.getAdditionalInfo();
  			for (final Iterator i = l.iterator(); i.hasNext();) {
  				final CEMILDataEx.AddInfo info = (CEMILDataEx.AddInfo) i.next();
  				copy.addAdditionalInfo(info.getType(), info.getInfo());
  			}
  			return copy;
  		}
  		if (ext)
  			return new CEMILDataEx(mc, s, d, content, original.getPriority(), original
  				.isRepetition(), original.getHopCount());
  		return new CEMILData(mc, s, d, content, original.getPriority(), original
  			.isRepetition(), original.getHopCount());
  	}