 
 // MARK: - Observers (Objective-C)
 
-@objc extension Zephyr {
+@objc
+extension Zephyr {
 
     /// Observation method for UIApplicationWillEnterForegroundNotification
     func willEnterForeground(notification: Notification) {
         NSUbiquitousKeyValueStore.default.synchronize()
     }
 
-    ///  Observation method for NSUbiquitousKeyValueStoreDidChangeExternallyNotification
+    ///  Observation method for `NSUbiquitousKeyValueStore.didChangeExternallyNotification`
     func keysDidChangeOnCloud(notification: Notification) {
         if notification.name == NSUbiquitousKeyValueStore.didChangeExternallyNotification {
             guard let userInfo = (notification as NSNotification).userInfo,

        }
    }

    /// Overloaded version of Zephyr's synchronization method, **sync(keys:)**.
    ///
    /// If a custom UserDefaults object is passed in, Zephyr will synchronize that rather than UserDefaults.standard
    ///
    /// - Parameters:
    ///     - userDefaults: The UserDefaults object that should be synchronized with UbiquitousKeyValueStore.default
    ///       default value is UserDefaults.standard
    ///     - keys: If you pass a one or more keys, only those key will be synchronized. If no keys are passed, than all NSUserDefaults will be synchronized with NSUbiquitousKeyValueStore.
    public static func sync(keys: String..., userDefaults: UserDefaults = UserDefaults.standard) {
        shared.userDefaults = userDefaults
        sync(keys: keys)
    }

    /// Overloaded version of Zephyr's synchronization method, **sync(keys:)**.
    ///
    /// If a custom UserDefaults object is passed in, Zephyr will synchronize that rather than UserDefaults.standard
    ///
    /// - Parameters:
    ///     - userDefaults: The UserDefaults object that should be synchronized with UbiquitousKeyValueStore.default
    ///       default value is UserDefaults.standard
    ///     - keys: An array of keys that should be synchronized between NSUserDefaults and NSUbiquitousKeyValueStore.
    public static func sync(keys: [String], userDefaults: UserDefaults = UserDefaults.standard) {
        shared.userDefaults = userDefaults
        sync(keys: keys)

        }
    }

    /// Overloaded version of Zephyr's synchronization method, `sync(keys:)`.
    ///
    /// This method will synchronize an array of keys between `UserDefaults` and `NSUbiquitousKeyValueStore`.
    ///
    /// - Parameters:
    ///     - keys: An array of keys that should be synchronized between `UserDefaults` and `NSUbiquitousKeyValueStore`.
    public static func sync(keys: [String]) {

        switch shared.dataStoreWithLatestData() {
