public static void main(String[] args) throws KeyNotUpdatedException, KeyNotFoundException {

        RepositoryUpdate theMerge = new RepositoryUpdate();

        PlayerRepository<Schema.Player> repository = JacksonPlayerRepository.create("/master.player.json");

        for(Schema.Player p : repository.getPlayers()) {
            for (Map.Entry<String,String> id : p.id.entrySet()) {
                Map<String,Player> repo = theMerge.index.get(id.getKey());
                if (null == repo) {
                    repo = Maps.newHashMap();
                    theMerge.index.put(id.getKey(),repo);
                }

                repo.put(id.getValue(),Schema.TRANSFORM.apply(p));
            }
        }

        final FileBackedStore playerStore = new FileBackedStore(new File(""));
        PlayerStore.Reader in = playerStore.createReader();

        String updates[] =
                {
                        "mlb.players.json"
                        , "espn.players.json"
                        , "lahman.players.json"
                        , "rotoworld.players.json"
                        , "yahoo.players.json"
                };


        for (String updateDatabase : updates) {
            Iterable<? extends Player> update = in.readPlayers(updateDatabase);
            update = Iterables.filter(update, Biography.HAS_BIO_FILTER);
            theMerge.merge(update);
        }


        PlayerStore.Writer out = playerStore.createWriter(SORT);
        out.writePlayers("update.missing.json", theMerge.missing);
        out.writePlayers("update.conflict.json", theMerge.conflicts);

    }