session cache and local cache with expiration
fetch with timeout
give fetch functionalities with timeout and retries