add is_base_of
fix is_base_of