Change NewClient API to use builder pattern