letting client implement the resolver instead of forcing the use of a specific IOC