backports AbstractText