diff --git a/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift b/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift
index e1ce8fb201188ac101249d070dc96a75e4ca481a..f672b312a1867790a10ffb54f84cd683084a1b22 100644
--- a/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift
+++ b/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift
@@ -103,6 +103,7 @@ public let backupReducer = Reducer<BackupState, BackupAction, BackupEnvironment>
   case .task:
     state.isRunning = env.messenger.isBackupRunning()
     return Effect.run { subscriber in
+      subscriber.send(.backupUpdated(env.backupStorage.stored()))
       let cancellable = env.backupStorage.observe { backup in
         subscriber.send(.backupUpdated(backup))
       }
diff --git a/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift b/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift
index ebb1510bc0c4f8a602db808931fe2c66ee5d3589..21afbd5409a40c956cce46cc40726996f741cb70 100644
--- a/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift
+++ b/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift
@@ -9,6 +9,10 @@ final class BackupFeatureTests: XCTestCase {
   func testTask() {
     var isBackupRunning: [Bool] = [false]
     var observers: [UUID: BackupStorage.Observer] = [:]
+    let storedBackup = BackupStorage.Backup(
+      date: .init(timeIntervalSince1970: 1),
+      data: "stored".data(using: .utf8)!
+    )
 
     let store = TestStore(
       initialState: BackupState(),
@@ -20,6 +24,9 @@ final class BackupFeatureTests: XCTestCase {
     store.environment.messenger.isBackupRunning.run = {
       isBackupRunning.removeFirst()
     }
+    store.environment.backupStorage.stored = {
+      storedBackup
+    }
     store.environment.backupStorage.observe = {
       let id = UUID()
       observers[id] = $0
@@ -30,14 +37,18 @@ final class BackupFeatureTests: XCTestCase {
 
     XCTAssertNoDifference(observers.count, 1)
 
-    let backup = BackupStorage.Backup(
-      date: .init(timeIntervalSince1970: 1),
-      data: "backup".data(using: .utf8)!
+    store.receive(.backupUpdated(storedBackup)) {
+      $0.backup = storedBackup
+    }
+
+    let observedBackup = BackupStorage.Backup(
+      date: .init(timeIntervalSince1970: 2),
+      data: "observed".data(using: .utf8)!
     )
-    observers.values.forEach { $0(backup) }
+    observers.values.forEach { $0(observedBackup) }
 
-    store.receive(.backupUpdated(backup)) {
-      $0.backup = backup
+    store.receive(.backupUpdated(observedBackup)) {
+      $0.backup = observedBackup
     }
 
     observers.values.forEach { $0(nil) }
diff --git a/Sources/XXMessengerClient/Utils/BackupStorage.swift b/Sources/XXMessengerClient/Utils/BackupStorage.swift
index e85e2e869b6610440b9531f70fd1a7d3fd42bd45..2f9112be7718f31fe4528e8a9bbe4c75c5d7db7a 100644
--- a/Sources/XXMessengerClient/Utils/BackupStorage.swift
+++ b/Sources/XXMessengerClient/Utils/BackupStorage.swift
@@ -18,6 +18,7 @@ public struct BackupStorage {
 
   public typealias Observer = (Backup?) -> Void
 
+  public var stored: () -> Backup?
   public var store: (Data) throws -> Void
   public var observe: (@escaping Observer) -> Cancellable
   public var remove: () throws -> Void
@@ -43,6 +44,9 @@ extension BackupStorage {
       backup = Backup(date: fileDate, data: fileData)
     }
     return BackupStorage(
+      stored: {
+        backup
+      },
       store: { data in
         let newBackup = Backup(
           date: now(),
@@ -55,7 +59,6 @@ extension BackupStorage {
       observe: { observer in
         let id = UUID()
         observers[id] = observer
-        defer { observers[id]?(backup) }
         return Cancellable {
           observers[id] = nil
         }
@@ -71,6 +74,7 @@ extension BackupStorage {
 
 extension BackupStorage {
   public static let unimplemented = BackupStorage(
+    stored: XCTUnimplemented("\(Self.self).stored"),
     store: XCTUnimplemented("\(Self.self).store"),
     observe: XCTUnimplemented("\(Self.self).observe", placeholder: Cancellable {}),
     remove: XCTUnimplemented("\(Self.self).remove")
diff --git a/Tests/XXMessengerClientTests/Utils/BackupStorageTests.swift b/Tests/XXMessengerClientTests/Utils/BackupStorageTests.swift
index d373ce6e3a88f1644e94ea735a5805dd039631e7..10da4a7c0eb62ae7647b3a52b506f6fcdf8fc57c 100644
--- a/Tests/XXMessengerClientTests/Utils/BackupStorageTests.swift
+++ b/Tests/XXMessengerClientTests/Utils/BackupStorageTests.swift
@@ -32,6 +32,10 @@ final class BackupStorageTests: XCTestCase {
       path: path
     )
 
+    XCTAssertNoDifference(
+      storage.stored(),
+      BackupStorage.Backup(date: fileDate, data: fileData)
+    )
     XCTAssertNoDifference(actions, [
       .didLoadFile(path),
       .didGetModifiedTime(path),
@@ -42,43 +46,46 @@ final class BackupStorageTests: XCTestCase {
       actions.append(.didObserve("A", backup))
     }
 
-    XCTAssertNoDifference(actions, [
-      .didObserve("A", .init(date: fileDate, data: fileData))
-    ])
+    XCTAssertNoDifference(actions, [])
+    XCTAssertNoDifference(
+      storage.stored(),
+      BackupStorage.Backup(date: fileDate, data: fileData)
+    )
 
     actions = []
     now = .init(1)
     let data1 = "data-1".data(using: .utf8)!
     try storage.store(data1)
 
+    XCTAssertNoDifference(
+      storage.stored(),
+      BackupStorage.Backup(date: .init(1), data: data1)
+    )
     XCTAssertNoDifference(actions, [
       .didObserve("A", .init(date: .init(1), data: data1)),
       .didSaveFile(path, data1),
     ])
 
     actions = []
-    now = .init(2)
     let observerB = storage.observe { backup in
       actions.append(.didObserve("B", backup))
     }
 
-    XCTAssertNoDifference(actions, [
-      .didObserve("B", .init(date: .init(1), data: data1))
-    ])
+    XCTAssertNoDifference(actions, [])
 
     actions = []
-    now = .init(3)
+    now = .init(2)
     observerA.cancel()
     let data2 = "data-2".data(using: .utf8)!
     try storage.store(data2)
 
     XCTAssertNoDifference(actions, [
-      .didObserve("B", .init(date: .init(3), data: data2)),
+      .didObserve("B", .init(date: .init(2), data: data2)),
       .didSaveFile(path, data2),
     ])
 
     actions = []
-    now = .init(4)
+    now = .init(3)
     try storage.remove()
 
     XCTAssertNoDifference(actions, [
@@ -87,7 +94,7 @@ final class BackupStorageTests: XCTestCase {
     ])
 
     actions = []
-    now = .init(5)
+    now = .init(4)
     observerB.cancel()
     let data3 = "data-3".data(using: .utf8)!
     try storage.store(data3)