Refactoring resolver to be more readable / extensible
Working on new resolver