resolver refactor