Use a factory to create clients (for future localized caching)