class ImageTable {

    static <K, V> Iterable<Map.Entry<K, V>> zip(Iterable<K> first, Iterable<V> second) {
        checkArgument(Iterables.size(first) == Iterables.size(second), "iterables don't have the same size");

        final Iterator<K> iterator = first.iterator();
        return newArrayList(transform(second, new Function<V, Map.Entry<K, V>>() {
            @Override
            public Map.Entry<K, V> apply(V input) {
                return Maps.immutableEntry(iterator.next(), input);
            }
        }));
    }

    public  ImageTable(Table<String, String, String> table);

}