implements resolver