connect should consume the clientbuilder

this way we can handle callbacks, which may not be cloneable or whatever