I'm not sure I like the idea of combining both the building and the starting. Is there a reason why this can't just take a broker as an argument, then pass that to (start-broker!) internally?