added backoff logic, so that we don't hit the API limits on a single user