     
     var settings: [String : AnyObject]? {
         didSet {
-            let userInfo = userInfoWithSettings(old: oldValue, new: settings)
-            if oldValue == nil {
-                sendNotification(CloudConfig.Notification.ConfigLoaded, userInfo: userInfo)
-            }
-            sendNotification(CloudConfig.Notification.ConfigRefreshed, userInfo: userInfo)
-            lastRefreshDate = NSDate()
+            if let newSetings = settings {
+                let userInfo = userInfoWithSettings(old: oldValue, new: newSetings)
+                if oldValue == nil {
+                    sendNotification(CloudConfig.Notification.ConfigLoaded, userInfo: userInfo)
+                }
+                sendNotification(CloudConfig.Notification.ConfigRefreshed, userInfo: userInfo)
+                lastRefreshDate = NSDate()
+            }
         }
     }
     

    // MARK: API
    
    func refresh(completion: ThrowWithInnerBlock? = nil) {
        getCloudConfig { [unowned self] (config) in
            do {
                let cloudConfig = try config()
                self.settings = cloudConfig
                completion?({ })
            } catch {

    
    /**
        Manually initiates refreshing of local config from cloud config if needed.
        Good place to call this is in your AppDelegate's `applicationDidBecomeActive:`.
     
        - parameter completion: Completion handler (SEE: `ThrowWithInnerBlock`).
    */
