client factory usage