Updating Associated Metadata Provider to follow the existing pattern.

cc @dougbu @rynowak 
fine to move this above the `private` classes but not fine to make tests conditional.