I'd rather see this as a constructor parameter with a default parameter, so a subclass isn't strictly necessary to use a custom client.