only queue if not already queued
less boilerplate
revert to using a static user agent, fixes issues with some sites refusing our http requests
correctly handle errors