Allow the client to specify a host and port to connect to, rather than using SRV records.
Review all the *Client receiver methods in layer3.go. They shouldprobably either all be receivers, or none.Add a Reconnect() function.Eliminate as many uses of Generic as possible.