*/
    private void nextFoundingFather(final ServerPlayer serverPlayer) {
        if (!serverPlayer.canRecruitFoundingFather()) return;
        if (serverPlayer.getOfferedFathers().isEmpty()) {
            serverPlayer.setOfferedFathers(serverPlayer
                .getRandomFoundingFathers(random));
        }
        final List<FoundingFather> ffs = serverPlayer.getOfferedFathers();
        if (ffs.isEmpty()) return;
        askThisTurn(serverPlayer, new ChooseFoundingFatherMessage(ffs),
            new DOMMessageHandler() {
                public DOMMessage handle(DOMMessage request) {
                    ChooseFoundingFatherMessage message
                        = (ChooseFoundingFatherMessage)request;
                    FoundingFather ff = message.getResult();
                    if (ff == null) {
                        logger.warning("No founding father selected");
                    } else if (!ffs.contains(ff)) {
                        logger.warning("Invalid founding father: "
                            + ff.getId());
                    } else {
                        serverPlayer.setCurrentFather(ff);
                        serverPlayer.clearOfferedFathers();
                        logger.info("Selected founding father: " + ff);
                    }
                    return null;
                }
            }, null);
    }