simple provider + config func