separate resolver
working on tests and refactor