moved request logic to classes for better organization
Retry requests when network status changed