you're counting on the withPrinter() method mutating the state of the Builder.  That might be how it works right now, but that's not a safe assumption to make.  If we need the builder, we should be storing the reference returned by the withPrinter method.