class Index implements Iterable<String> {

    public static <E extends Enum<E>> Index forLabels(Class<E> columns) {

        E[] enumValues = columns.getEnumConstants();
        String[] labels = new String[enumValues.length];
        for (int i = 0; i < enumValues.length; i++) {
            labels[i] = enumValues[i].name();
        }

        return forLabels(labels);
    }

    protected  Index(String... labels);

}