add client factory