         return _SharedStore
     }
     
+    private let sharedCache = NSURLCache(memoryCapacity: _MemoryCacheSize, diskCapacity: _DiskCacheSize, diskPath: nil)
+    
+    override init() {
+        NSURLCache.setSharedURLCache(sharedCache)
+    }
+    
     typealias fetchSessionsCompletionHandler = (Bool, [Session]) -> Void
     
-//    var cachedAppleURL: NSURL? = NSUserDefaults.standardUserDefaults().URLForKey("Apple URL")
-    var cachedAppleURL: NSURL? = nil
+    var appleSessionsURL: NSURL? = nil
     
     let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
     
     func fetchSessions(completionHandler: fetchSessionsCompletionHandler) {
-        if let appleURL = cachedAppleURL {
+        if let appleURL = appleSessionsURL {
             doFetchSessions(completionHandler)
         } else {
             let internalServiceURL = NSURL(string: _internalServiceURL)

                
                NSUserDefaults.standardUserDefaults().setURL(NSURL(string: appleURL)!, forKey: "Apple URL")
                NSUserDefaults.standardUserDefaults().synchronize()
                self.cachedAppleURL = NSURL(string: appleURL)!
                
                self.doFetchSessions(completionHandler)
            }).resume()


private let _internalServiceURL = "http://wwdc.guilhermerambo.me/index.json"
private let _SharedStore = DataStore()
private let _MemoryCacheSize = 500*1024*1024
private let _DiskCacheSize = 1024*1024*1024

class DataStore: NSObject {
    
