Fleshing out a provider model