scraping is dirty, this is a much more legitimate approach