move a bunch of logic out to client connection
add feature of roundrobin dispatch to clientcollection