code: public static void deepCopy(Object from, Object to) {
  		if (from == null) throw new IllegalArgumentException("from must not be null");
  		if (to == null) throw new IllegalArgumentException("to must not be null");
  		if (from.getClass() != to.getClass()) throw new IllegalArgumentException("from and to must have exactly same class, from has " + from.getClass() + " to has " + to.getClass());
  
  		try {
  			_deepCopy(from, to, new ArrayList(), new ArrayList());
  		} catch (IllegalAccessException | IllegalArgumentException x) {
  			throw new RuntimeException(x);
  		}
  	}
docs: note: deepCopy works only with special classes validatable through
  ModelTest .
  
  @param from the original object
  @param to an empty object to be filled