Right now it's just doing a synchronous fetch on a background thread, which is alright, but loses out on some opportunities for error reporting, and makes it a little more error prone to override that behaviour from client code. It should be switch to us an async NSURLSession task.