actually, this shouldn't be a conflict at all

role isa class, so we need to check isa class first before checking isa
role