Implement the provider interface