updated ProviderDirectory class