Here’s the actual code. The load method starts the actual asynchronous calls. The startAsyncLoad:tag and dataForConnection methods are convenience methods to keep the code tidy & readable. - (void)startAsyncLoad:(NSURL*)url tag:(NSString*)tag { NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; CustomURLConnection *connection = [[CustomURLConnection alloc] initWithRequest:req