implemented backoff