It would make better sense if you renamed this to be `AuthenticationMethodRetriever` or something like that. Authentication methods are not service based, rather, services can specify an authentication method. Methods can also be request based, or attribute based. When you say "ServiceBased..." it gives the indication that the authn method is somehow tied to the relying party, which it may not be always. You'd need to go one step higher in the abstraction chain, and perhaps just define a contract that retrieves authentication methods from various sources.