[refactor] reduce complexity by using a consistent general purpose resolve object
[test] update tests to reflect new resolve api