improved XSLT transformation