protected String validate(String phone) {
        Pattern DOMESTIC_REGEX = Pattern.compile("^(?:\\([2-9]\\d{2}\\) ?|[2-9]\\d{2}(?:\\-?| ?|\\.?))[2-9]\\d{2}[- .]?\\d{4}$");
        Pattern INTL_REGEX = Pattern.compile("^\\+(?:[0-9]??){6,14}[0-9]$");

        if (phone == null) {
            throw new NullPointerException("Phone number cannot be null");
        }

        if (isInternational) {
            // @todo until unit tests are implemented for international phones, we should accept any entry
//            if (!strictMode || INTL_REGEX.matcher(phone).matches()) {
            return phone;
//            }
        } else {
            if (!strictMode || DOMESTIC_REGEX.matcher(phone).matches()) {
                return phone;
            }
        }

        throw new IllegalArgumentException("Invalid phone number format specified: " + phone);
    }