Basic provider implementation