Break out logic into separate accessible methods

It could be a system wants to use this library to download download a page, parse a page, run logs on  a page, or all of the above to a single page.