port more to lxml