type resolver