make lxml optional