complete type recognition