Use instance method instead of class method to retrieve a valid provider

I'm not sure why I started it using class methods, but it was a bad idea. Kids, don't forget to instantiate your objects as soon as possible. Seriously.
Now, you have to register properly instanciated objets.

Also, introduced custom providers, which are awesome because BLOCKS.