xxx_agnostic functions updated