drop use of UNIVERSAL::isa and replaces it with ref()