public static void main(String[] args) throws KeyStoreException {
        PlayerRepository<Schema.Player> repository = JacksonPlayerRepository.create("/master.player.json");

        Iterable<? extends Player> players = Iterables.transform(repository.getPlayers(),Schema.TRANSFORM);

        players = Iterables.filter(players, Biography.HAS_BIO_FILTER);

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


        IdReader idReader = new BioReader();
        Map<String, Player> idMap = DatabaseFactory.createIdMap(players, idReader);

        BootstrapMerge theMerge = new BootstrapMerge(idMap, idReader);

        String updates[] =
                {
                        "mlb.players.json"
                        , "espn.players.json"
                        , "lahman.players.json"
                        // TODO -- oliver has no DOB information in it.
                        // , "oliver.players.json"
                        , "rotoworld.players.json"
                        , "yahoo.players.json"
                        // , "baseballReference.players.json"
                        // , "biography.merged.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();
        out.writePlayers("bootstrap.merged.json", theMerge.collectMasterDatabase());
        out.writePlayers("bootstrap.missing.json", theMerge.collectMissingDatabase());
        out.writePlayers("bootstrap.conflict.json", theMerge.collectConflictDatabase());
    }