public Mobile createRandomPhone() {
        Manufacturer m = manufacturers[random.nextInt(manufacturers.length)];
        switch (m) {
            case APPLE:
                return createApplePhone();
            case HTC:
                return createHTCPhone();
            case HUAWEI:
                return createHuaweiPhone();
            case SAMSUNG:
                return createSamsungPhone();
            default:
                throw new AssertionError("Unexpected manufacturer: " + m);
        }
    }