     public weak var delegate: OSiCloudDataBackupDelegate?
 
     /// Initialization. Delegate is mandatory.
-    public init(delegate: OSiCloudDataBackupDelegate) {
+    public init(delegate: OSiCloudDataBackupDelegate?) {
         self.delegate = delegate
     }
 

     - Parameter object: object to store
     - Parameter key: key of the value to retrive
     */
    private func writeObject(object: Any, forKey key: String) {
        let iCloudStore = NSUbiquitousKeyValueStore.default()
        iCloudStore.set(object, forKey: key)
        iCloudStore.synchronize()

            state = .dataAvailable
            delegate?.didUpdateState(manager: self)
        }
    }

    /// Remove backup and its date
    public func removeData() {
        self.writeObject(object: nil, forKey: dataKey)
        self.writeObject(object: nil, forKey: dateKey)
    }

    private func configureChangeNotification() {
