throw exception as fast as possible to avoid fetching other resources

Add IO Exception
Update dependencies
Separate concerns for fetching into multiple classes to fetch streams