added picking a random start point and backoff to worker