another approach is to use a factory method instead of the constructor to get an instance of Resolver.
This class would become abstract and the factory method would basically do the same thing as delegateResolver here.