use a new-agnostic constructor for Client and Server