Writer createRawWriter() {
        final SimpleArchive<Player> simpleArchive = new SimpleArchive<Player>();

        Writer toFile = new Writer() {
            public void writePlayers(String key, Iterable<? extends Player> players) throws KeyNotFoundException, KeyNotUpdatedException {
                PrintStream out = createStream(key);
                try {
                    simpleArchive.archive(players, out);
                } catch (IOException e) {
                    throw new KeyNotUpdatedException("Unable to update " + key, e);
                }
            }

            private PrintStream createStream(String key) throws KeyNotFoundException {
                File destination = new File(key);
                try {
                    return new PrintStream(destination);
                } catch (FileNotFoundException e) {
                    throw new KeyNotFoundException(key,e);
                }
            }
        } ;

        return toFile;
    }