first pass at the resolver