improve cdata handling