add evaluate_type