Preliminary version of Provider.

* Tests still fail