support for custom providers