move resolver-macro to separate module