I see no need to enforce that the provider implements some interface here.  If the user passes in a String, yes it will blow up, as it should.