         )
     }
     
-    func makeLocalRequest(url: NSURL, completion:(data: NSData?) -> ()) {
+    func makeLocalRequest(url: NSURL) -> (data: NSData?) {
         let localURL = self.localURLForRemoteURL(url)
-        makeLocalRequestWithLocalURL(localURL, completion: completion)
-    }
-    
-    func makeLocalRequestWithLocalURL(url: NSURL, completion:(data: NSData?) -> ()) {
+        return makeLocalRequestWithLocalURL(localURL)
+    }
+    
+    func makeLocalRequestWithLocalURL(url: NSURL) -> (data: NSData?) {
         let localPath = url.absoluteString.stringByRemovingPercentEncoding
             .stringByReplacingOccurrencesOfString("file://", withString: "", options: nil, range: nil)
         let data = NSData.dataWithContentsOfMappedFile(localPath) as? NSData
         cache.setObject(data, forKey: url, cost: data!.length)
-        completion(
-            data: data
-        )
+        return data
     }
 
 }
    
    func getFile(contentID: String) -> NSData? {
        var returnData: NSData? = nil
        makeLocalRequestWithLocalURL(
            localURLForContentID(contentID), completion: {
                returnData = $0
            }
        )
        return returnData
    }
    

    func getResource(url: NSURL, completion: (data: NSData?) -> ()) {
        if( urlIsOnDisk(url)) {
            // Read and return it
            completion(makeLocalRequest(url))
        }
        else {
            makeRemoteRequest(url, completion: completion)
