Sequence (String url_1, String url_2, String url_3) {
            if (url_1 == null || url_2 == null || url_3 == null
                    || url_1.isEmpty() || url_2.isEmpty() || url_3.isEmpty()) {
                throw  new IllegalArgumentException("Neither of the construction urls allowed to be null or empty");
            }

            // calculate once and keep in this instance. Generally not acceptable, however this class is immutable so it is OK.
            hashCode = url_1.concat(url_2).concat(url_3).hashCode();

            urls = Collections.unmodifiableList(Arrays.asList(new String[]{url_1, url_2, url_3}));
        }