- replace view-model provider strategy with a more generic pattern of "IValueProviderStrategy" in Contracts