type resolution