attempt to clean up reachability handling
merging retry logic and reachability changes