parsing html is hard