 public class FeedCache<T:FeedItem>{
     
     let name: String!
-    let diskOperationQueue = NSOperationQueue()
+    var diskOperationQueue = NSOperationQueue()
     public var items : [T] = []
     public var saved = false
     
     public init(name: String) {
+        if FeedKitPerformWorkSynchronously {
+            diskOperationQueue = NSOperationQueue.mainQueue()
+        }
         diskOperationQueue.maxConcurrentOperationCount = 1
         self.name = name
     }

        // thus completion will fire **after** synchronize unblocks
        let mainQueueCompletion : (success: Bool) -> () = {
            (success: Bool) -> () in
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                completion?(success: success)
            })
        }
        
        _getCachedData (completion: {(data) -> () in

    
    // Wait until operation queue is empty
    public func waitUntilSynchronized(){
        if diskOperationQueue != NSOperationQueue.mainQueue() {
            diskOperationQueue.waitUntilAllOperationsAreFinished()
        }
    }
    
    private func _deleteCache() {
