public static IdStore create(Iterable<Schema.Player> players) {
        Map<String,Map<String,Schema.Player>> store = Maps.newHashMap();
        for (Schema.Player p : players) {
            for (Map.Entry<String,String> id : p.id.entrySet()) {
                Map<String,Schema.Player> shard = store.get(id.getKey());
                if (null == shard) {
                    shard = Maps.newHashMap();
                    store.put(id.getKey(), shard);
                }

                shard.put(id.getValue(),p);
            }
        }

        return new IdStore(store);
    }