Add factory for provider