adapted to expl3 syntax changes