Enhance provide and add tests