code: public static Email of(final String address) {
  		if (address.length() < 3) {
  			throw new IllegalArgumentException(format(
  				"Invalid email: '%s'.", address
  			));
  		}
  
  		final int index = address.indexOf('@');
  		if (index == -1 || index == 0 || index == address.length()) {
  			throw new IllegalArgumentException(format(
  				"Invalid email: '%s'.", address
  			));
  		}
  
  		return new Email(
  			address.substring(0, index),
  			address.substring(index + 1, address.length())
  		);
  	}
docs: Create a new {@code Email} from the given {@code address} string.
  
  @param address the email address string
  @return a new {@code Email} object with {@code address}
  @throws NullPointerException if one of the argument is {@code null}
  @throws IllegalArgumentException if the given {@code address} is invalid