seperated out the html parsing to its own module