diff --git a/Package.swift b/Package.swift
index 354bc1cce3398690a41ffbd53cb0ae1084050399..08f6fef2fb77a9c65ba50627b93abcb367a5a6f6 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,910 +1,891 @@
 // swift-tools-version:5.6
 import PackageDescription
 
-// MARK: - Helpers
-
-struct Feature {
-    var product: Product
-    var targets: [Target]
-    var targetDependency: Target.Dependency
-
-    static func library(
-        name: String,
-        dependencies: [Target.Dependency] = [],
-        testDependencies: [Target.Dependency] = [],
-        swiftSettings: [SwiftSetting] = [
-            .unsafeFlags(
-                [
-                    "-Xfrontend",
-                    "-debug-time-function-bodies",
-                    "-Xfrontend",
-                    "-debug-time-expression-type-checking",
-                ],
-                .when(configuration: .debug)
-            )
-        ]
-    ) -> Feature {
-        .init(
-            product: .library(name: name, targets: [name]),
-            targets: [
-                .target(
-                    name: name,
-                    dependencies: dependencies,
-                    swiftSettings: swiftSettings
-                ),
-                .testTarget(
-                    name: "\(name)Tests",
-                    dependencies: [.target(name: name)] + testDependencies,
-                    swiftSettings: swiftSettings
-                ),
-            ],
-            targetDependency: .target(name: name)
-        )
-    }
-}
-
-struct Dependency {
-    var packageDependency: Package.Dependency
-    var targetDependency: Target.Dependency
-
-    static func local(
-        path: String,
-        name: String,
-        package: String
-    ) -> Dependency {
-        .init(
-            packageDependency: .package(path: path),
-            targetDependency: .product(name: name, package: package)
-        )
-    }
-
-    static func external(
-        url: String,
-        version: Range<Version>,
-        name: String,
-        package: String
-    ) -> Dependency {
-        .init(
-            packageDependency: .package(url: url, version),
-            targetDependency: .product(name: name, package: package)
-        )
-    }
-}
-
-// MARK: - Manifest
-
-extension Dependency {
-    static let all: [Dependency] = [
-        .retry,
-        .quick,
-        .shout,
-        .nimble,
-        .snapkit,
-        .firebase,
-        .chatLayout,
-        .googleDrive,
-        .googleSignIn,
-        .fileProvider,
-        .swiftyBeaver,
-        .swiftyDropbox,
-        .differenceKit,
-        .swiftProtobuf,
-        .clientDatabase,
-        .keychainAccess,
-        .swiftCustomDump,
-        .combineSchedulers,
-        .xcTestDynamicOverlay,
-        .scrollViewController,
-        .composableArchitecture
-    ]
-
-    static let keychainAccess = Dependency.external(
-        url: "https://github.com/kishikawakatsumi/KeychainAccess.git",
-        version: .upToNextMajor(from: "4.2.2"),
-        name: "KeychainAccess",
-        package: "KeychainAccess"
-    )
-
-    static let combineSchedulers = Dependency.external(
-        url: "https://github.com/pointfreeco/combine-schedulers",
-        version: .upToNextMajor(from: "0.5.0"),
-        name: "CombineSchedulers",
-        package: "CombineSchedulers"
-    )
-
-    static let quick = Dependency.external(
-        url: "https://github.com/Quick/Quick",
-        version: .upToNextMajor(from: "3.0.0"),
-        name: "Quick",
-        package: "Quick"
-    )
-
-    static let nimble = Dependency.external(
-        url: "https://github.com/Quick/Nimble",
-        version: .upToNextMajor(from: "9.0.0"),
-        name: "Nimble",
-        package: "Nimble"
-    )
-
-    static let snapkit = Dependency.external(
-        url: "https://github.com/SnapKit/SnapKit",
-        version: .upToNextMajor(from: "5.0.1"),
-        name: "SnapKit",
-        package: "SnapKit"
-    )
-
-    static let retry = Dependency.external(
-        url: "https://github.com/icanzilb/Retry.git",
-        version: .upToNextMajor(from: "0.6.3"),
-        name: "Retry",
-        package: "Retry"
-    )
-
-    static let chatLayout = Dependency.external(
-        url: "https://github.com/ekazaev/ChatLayout",
-        version: .upToNextMajor(from: "1.1.14"),
-        name: "ChatLayout",
-        package: "ChatLayout"
-    )
-
-    static let differenceKit = Dependency.external(
-        url: "https://github.com/ra1028/DifferenceKit",
-        version: .upToNextMajor(from: "1.2.0"),
-        name: "DifferenceKit",
-        package: "DifferenceKit"
-    )
-
-    static let swiftProtobuf = Dependency.external(
-        url: "https://github.com/apple/swift-protobuf",
-        version: .upToNextMajor(from: "1.14.0"),
-        name: "SwiftProtobuf",
-        package: "SwiftProtobuf"
-    )
-
-    static let googleSignIn = Dependency.external(
-        url: "https://github.com/google/GoogleSignIn-iOS",
-        version: .upToNextMajor(from: "6.1.0"),
-        name: "GoogleSignIn-iOS",
-        package: "GoogleSignIn-iOS"
-    )
-
-    static let swiftyDropbox = Dependency.external(
-        url: "https://github.com/dropbox/SwiftyDropbox.git",
-        version: .upToNextMajor(from: "8.2.1"),
-        name: "SwiftyDropbox",
-        package: "SwiftyDropbox"
-    )
-
-    static let fileProvider = Dependency.external(
-        url: "https://github.com/amosavian/FileProvider.git",
-        version: .upToNextMajor(from: "0.26.0"),
-        name: "FileProvider",
-        package: "FileProvider"
-    )
-
-    static let swiftyBeaver = Dependency.external(
-        url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git",
-        version: .upToNextMajor(from: "1.9.5"),
-        name: "SwiftyBeaver",
-        package: "SwiftyBeaver"
-    )
-
-    static let scrollViewController = Dependency.external(
-        url: "https://github.com/darrarski/ScrollViewController",
-        version: .upToNextMajor(from: "1.2.0"),
-        name: "ScrollViewController",
-        package: "ScrollViewController"
-    )
-
-    static let swiftCustomDump = Dependency.external(
-        url: "https://github.com/pointfreeco/swift-custom-dump.git",
-        version: .upToNextMajor(from: "0.5.0"),
-        name: "SwiftCustomDump",
-        package: "SwiftCustomDump"
-    )
-
-    static let xcTestDynamicOverlay = Dependency.external(
-        url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git",
-        version: .upToNextMajor(from: "0.3.3"),
-        name: "XCTestDynamicOverlay",
-        package: "xctest-dynamic-overlay"
-    )
-
-    static let composableArchitecture = Dependency.external(
-        url: "https://github.com/pointfreeco/swift-composable-architecture.git",
-        version: .upToNextMajor(from: "0.32.0"),
-        name: "ComposableArchitecture",
-        package: "swift-composable-architecture"
-    )
-
-    static let shout = Dependency.external(
-        url: "https://github.com/darrarski/Shout.git",
-        version: .upToNextMajor(from: ""), // revision: df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0
-        name: "Shout",
-        package: "Shout"
-    )
-
-    static let firebase = Dependency.external(
-        url: "https://github.com/firebase/firebase-ios-sdk.git",
-        version: .upToNextMajor(from: "8.10.0"),
-        name: "Firebase",
-        package: "Firebase"
-    )
-
-    static let clientDatabase = Dependency.external(
-        url: "https://git.xx.network/elixxir/client-ios-db.git",
-        version: .upToNextMajor(from: "1.0.8"),
-        name: "",
-        package: ""
-    )
-
-    static let googleDrive = Dependency.external(
-        url: "https://github.com/google/google-api-objectivec-client-for-rest",
-        version: .upToNextMajor(from: "1.6.0"),
-        name: "GoogleDrive",
-        package: "GoogleDrive"
-    )
-}
-
-extension Feature {
-    static let all: [Feature] = [
-        .app
-    ]
-
-    static let app = Feature.library(
-        name: "App",
-        dependencies: [
-            Feature.scan.targetDependency,
-            Feature.chat.targetDependency,
-            Feature.menu.targetDependency,
-            Feature.push.targetDependency,
-            Feature.sftp.targetDependency,
-            Feature.drive.targetDependency,
-            Feature.toast.targetDependency,
-            Feature.backup.targetDependency,
-            Feature.search.targetDependency,
-            Feature.launch.targetDependency,
-            Feature.icloud.targetDependency,
-            Feature.dropbox.targetDependency,
-            Feature.contact.targetDependency,
-            Feature.restore.targetDependency,
-            Feature.profile.targetDependency,
-            Feature.chatList.targetDependency,
-            Feature.settings.targetDependency,
-            Feature.requests.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.voxophone.targetDependency,
-            Feature.onboarding.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.contactList.targetDependency,
-            Feature.crashReporting.targetDependency
-        ]
-    )
-
-    static let permissions = Feature.library(
-        name: "Permissions",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let crashReporting = Feature.library(
-        name: "CrashReporting"
-    )
-
-    static let networkMonitor = Feature.library(
-        name: "NetworkMonitor"
-    )
-
-    static let versionChecking = Feature.library(
-        name: "VersionChecking"
-    )
-
-    static let dependencyInjection = Feature.library(
-        name: "DependencyInjection"
-    )
-
-    static let inputField = Feature.library(
-        name: "InputField",
-        dependencies: [
-            Feature.shared.targetDependency
-        ]
-    )
-
-    static let push = Feature.library(
-        name: "PushFeature",
-        dependencies: [
-            Feature.models.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let testHelpers = Feature.library(
-        name: "TestHelpers",
-        dependencies: [
-            Feature.models.targetDependency,
-            Feature.presentation.targetDependency
-        ]
-    )
-
-    static let keychain = Feature.library(
-        name: "Keychain",
-        dependencies: [
-            Dependency.keychainAccess.targetDependency
-        ]
-    )
-
-    static let voxophone = Feature.library(
-        name: "Voxophone",
-        dependencies: [
-            Feature.shared.targetDependency
-        ]
-    )
-
-    static let models = Feature.library(
-        name: "Models",
-        dependencies: [
-            Dependency.differenceKit.targetDependency,
-            Dependency.swiftProtobuf.targetDependency
-        ]
-    )
-
-    static let defaults = Feature.library(
-        name: "Defaults",
-        dependencies: [
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let toast = Feature.library(
-        name: "ToastFeature",
-        dependencies: [
-            Feature.shared.targetDependency
-        ]
-    )
-
-    static let crashService = Feature.library(
-        name: "CrashService",
-        dependencies: [
-            Dependency.firebase.targetDependency,
-            Feature.crashReporting.targetDependency
-        ]
-    )
-
-    static let sftp = Feature.library(
-        name: "SFTPFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.models.targetDependency,
-            Feature.shared.targetDependency,
-            Dependency.shout.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let drive = library(
-        name: "GoogleDriveFeature",
-        dependencies: [
-            Dependency.googleDrive.targetDependency,
-            Dependency.googleSignIn.targetDependency
-        ] // resources: [.process("Resources")]
-    )
-
-    static let icloud = library(
-        name: "iCloudFeature",
-        dependencies: [
-            Dependency.fileProvider.targetDependency
-        ]
-    )
-
-    static let dropbox = library(
-        name: "DropboxFeature",
-        dependencies: [
-            Dependency.swiftyDropbox.targetDependency
-        ] // resources: [.process("Resources")]
-    )
-
-    static let countries = library(
-        name: "Countries",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-        ] // resources: [.process("Resources")]
-    )
-
-    static let theme = library(
-        name: "Theme",
-        dependencies: [
-            Feature.defaults.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let drawer = library(
-        name: "DrawerFeature",
-        dependencies: [
-            Feature.shared.targetDependency,
-            Feature.inputField.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-
-    static let hud = library(
-        name: "HUD",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Dependency.snapkit.targetDependency
-        ]
-    )
-
-    static let logger = library(
-        name: "XXLogger",
-        dependencies: [
-            Dependency.swiftyBeaver.targetDependency
-        ]
-    )
-
-    static let shared = library(
-        name: "Shared",
-        dependencies: [
-            Dependency.snapkit.targetDependency,
-            Dependency.chatLayout.targetDependency,
-            Dependency.differenceKit.targetDependency,
-        ] // resources: [.process("Resources")] + exclude: ["swiftgen.yml"],
-    )
-
-    static let integration = library(
-        name: "Integration",
-        dependencies: [
-            Feature.shared.targetDependency,
-            Feature.bindings.targetDependency,
-            Feature.logger.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.toast.targetDependency,
-            Feature.backup.targetDependency,
-            Feature.crashReporting.targetDependency,
-            Feature.networkMonitor.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.retry.targetDependency,
-            Dependency.clientDatabase.targetDependency
-            // resources: [.process("Resources")]
-            // Dependency.clientDatabase.targetDependency <--- XXLegacyDatabaseMigrator
-        ]
-    )
-
-    static let presentation = library(
-        name: "Presentation",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Dependency.snapkit.targetDependency
-        ]
-    )
-
-    static let chatInput = library(
-        name: "ChatInputFeature",
-        dependencies: [
-            Feature.voxophone.targetDependency,
-            Dependency.composableArchitecture.targetDependency
-        ]
-    )
-
-    static let restore = library(
-        name: "RestoreFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.sftp.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.icloud.targetDependency,
-            Feature.dropbox.targetDependency,
-            Feature.drive.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let contact = library(
-        name: "ContactFeature",
-        dependencies: [
-            Feature.shared.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.chat.targetDependency,
-            Feature.presentation.targetDependency,
-            Dependency.combineSchedulers.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-
-    static let chat = library(
-        name: "ChatFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.voxophone.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.drawer.targetDependency,
-            Feature.chatInput.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.chatLayout.targetDependency,
-            Dependency.differenceKit.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-
-    static let search = library(
-        name: "SearchFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.countries.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.contact.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let launch = library(
-        name: "LaunchFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.push.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.dropbox.targetDependency,
-            Feature.versionChecking.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let requests = library(
-        name: "RequestsFeature",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.toast.targetDependency,
-            Feature.contact.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.differenceKit.targetDependency
-        ]
-    )
-
-    static let profile = library(
-        name: "ProfileFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.countries.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.menu.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.drawer.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.combineSchedulers.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-
-    static let chatList = library(
-        name: "ChatListFeature",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.menu.targetDependency,
-            Feature.chat.targetDependency,
-            Feature.profile.targetDependency,
-            Feature.settings.targetDependency,
-            Feature.contactList.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.differenceKit.targetDependency
-        ]
-    )
-
-    static let onboarding = library(
-        name: "OnboardingFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.countries.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.push.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.drawer.targetDependency,
-            Feature.versionChecking.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.combineSchedulers.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-
-    static let menu = library(
-        name: "MenuFeature",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let backup = library(
-        name: "BackupFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.models.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.sftp.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.icloud.targetDependency,
-            Feature.drawer.targetDependency,
-            Feature.dropbox.targetDependency,
-            Feature.drive.targetDependency,
-            Feature.dependencyInjection.targetDependency
-        ]
-    )
-
-    static let scan = library(
-        name: "ScanFeature",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.countries.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.contact.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.snapkit.targetDependency
-        ]
-    )
-
-    static let contactList = library(
-        name: "ContactListFeature",
-        dependencies: [
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.contact.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.differenceKit.targetDependency
-        ]
-    )
-
-    static let settings = library(
-        name: "SettingsFeature",
-        dependencies: [
-            Feature.hud.targetDependency,
-            Feature.theme.targetDependency,
-            Feature.shared.targetDependency,
-            Feature.defaults.targetDependency,
-            Feature.keychain.targetDependency,
-            Feature.inputField.targetDependency,
-            Feature.push.targetDependency,
-            Feature.permissions.targetDependency,
-            Feature.menu.targetDependency,
-            Feature.integration.targetDependency,
-            Feature.presentation.targetDependency,
-            Feature.drawer.targetDependency,
-            Feature.dependencyInjection.targetDependency,
-            Dependency.combineSchedulers.targetDependency,
-            Dependency.scrollViewController.targetDependency
-        ]
-    )
-}
-
 let package = Package(
     name: "client-ios",
     defaultLocalization: "en",
-    platforms: [.iOS(.v14)],
-    products: Feature.all.map(\.product),
-    dependencies: Dependency.all.map(\.packageDependency),
-    targets: Feature.all.flatMap(\.targets)
-)
+    platforms: [
+        .iOS(.v14),
+    ],
+    products: [
+        .library(name: "App", targets: ["App"]),
+        .library(name: "HUD", targets: ["HUD"]),
+        .library(name: "Theme", targets: ["Theme"]),
+        .library(name: "Shared", targets: ["Shared"]),
+        .library(name: "Models", targets: ["Models"]),
+        .library(name: "XXLogger", targets: ["XXLogger"]),
+        .library(name: "Defaults", targets: ["Defaults"]),
+        .library(name: "Bindings", targets: ["Bindings"]),
+        .library(name: "Keychain", targets: ["Keychain"]),
+        .library(name: "Voxophone", targets: ["Voxophone"]),
+        .library(name: "Countries", targets: ["Countries"]),
+        .library(name: "InputField", targets: ["InputField"]),
+        .library(name: "TestHelpers", targets: ["TestHelpers"]),
+        .library(name: "ScanFeature", targets: ["ScanFeature"]),
+        .library(name: "Permissions", targets: ["Permissions"]),
+        .library(name: "MenuFeature", targets: ["MenuFeature"]),
+        .library(name: "Integration", targets: ["Integration"]),
+        .library(name: "ChatFeature", targets: ["ChatFeature"]),
+        .library(name: "PushFeature", targets: ["PushFeature"]),
+        .library(name: "SFTPFeature", targets: ["SFTPFeature"]),
+        .library(name: "CrashService", targets: ["CrashService"]),
+        .library(name: "Presentation", targets: ["Presentation"]),
+        .library(name: "BackupFeature", targets: ["BackupFeature"]),
+        .library(name: "LaunchFeature", targets: ["LaunchFeature"]),
+        .library(name: "iCloudFeature", targets: ["iCloudFeature"]),
+        .library(name: "SearchFeature", targets: ["SearchFeature"]),
+        .library(name: "DrawerFeature", targets: ["DrawerFeature"]),
+        .library(name: "CollectionView", targets: ["CollectionView"]),
+        .library(name: "RestoreFeature", targets: ["RestoreFeature"]),
+        .library(name: "CrashReporting", targets: ["CrashReporting"]),
+        .library(name: "ProfileFeature", targets: ["ProfileFeature"]),
+        .library(name: "ContactFeature", targets: ["ContactFeature"]),
+        .library(name: "NetworkMonitor", targets: ["NetworkMonitor"]),
+        .library(name: "DropboxFeature", targets: ["DropboxFeature"]),
+        .library(name: "VersionChecking", targets: ["VersionChecking"]),
+        .library(name: "SettingsFeature", targets: ["SettingsFeature"]),
+        .library(name: "ChatListFeature", targets: ["ChatListFeature"]),
+        .library(name: "RequestsFeature", targets: ["RequestsFeature"]),
+        .library(name: "ChatInputFeature", targets: ["ChatInputFeature"]),
+        .library(name: "OnboardingFeature", targets: ["OnboardingFeature"]),
+        .library(name: "GoogleDriveFeature", targets: ["GoogleDriveFeature"]),
+        .library(name: "ContactListFeature", targets: ["ContactListFeature"]),
+        .library(name: "DependencyInjection", targets: ["DependencyInjection"])
+    ],
+    dependencies: [
+        .package(url: "https://github.com/Quick/Quick", from: "3.0.0"),
+        .package(url: "https://github.com/Quick/Nimble", from: "9.0.0"),
+        .package(url: "https://github.com/SnapKit/SnapKit", from: "5.0.1"),
+        .package(url: "https://github.com/icanzilb/Retry.git", from: "0.6.3"),
+        .package(url: "https://github.com/ekazaev/ChatLayout", from: "1.1.14"),
+        .package(url: "https://github.com/ra1028/DifferenceKit", from: "1.2.0"),
+        .package(url: "https://github.com/apple/swift-protobuf", from: "1.14.0"),
+        .package(url: "https://github.com/google/GoogleSignIn-iOS", from: "6.1.0"),
+        .package(url: "https://github.com/dropbox/SwiftyDropbox.git", from: "8.2.1"),
+        .package(url: "https://github.com/amosavian/FileProvider.git", from: "0.26.0"),
+        .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "1.9.5"),
+        .package(url: "https://github.com/darrarski/ScrollViewController", from: "1.2.0"),
+        .package(url: "https://github.com/pointfreeco/combine-schedulers", from: "0.5.0"),
+        .package(url: "https://github.com/kishikawakatsumi/KeychainAccess", from: "4.2.1"),
+        .package(url: "https://github.com/google/google-api-objectivec-client-for-rest", from: "1.6.0"),
+        .package(url: "https://git.xx.network/elixxir/client-ios-db.git", .upToNextMajor(from: "1.0.8")),
+        .package(url: "https://github.com/firebase/firebase-ios-sdk.git", .upToNextMajor(from: "8.10.0")),
+        .package(url: "https://github.com/darrarski/Shout.git", revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"),
+        .package(url: "https://github.com/pointfreeco/swift-composable-architecture.git",.upToNextMajor(from: "0.32.0")),
+        .package(url: "https://github.com/pointfreeco/swift-custom-dump.git", .upToNextMajor(from: "0.5.0")),
+        .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git", .upToNextMajor(from: "0.3.3")),
+    ],
+    targets: [
+        .target(
+            name: "App",
+            dependencies: [
+                "Keychain",
+                "Voxophone",
+                "Permissions",
+                "ScanFeature",
+                "ChatFeature",
+                "MenuFeature",
+                "PushFeature",
+                "SFTPFeature",
+                "ToastFeature",
+                "CrashService",
+                "BackupFeature",
+                "SearchFeature",
+                "LaunchFeature",
+                "iCloudFeature",
+                "DropboxFeature",
+                "ContactFeature",
+                "RestoreFeature",
+                "ProfileFeature",
+                "CrashReporting",
+                "ChatListFeature",
+                "SettingsFeature",
+                "RequestsFeature",
+                "OnboardingFeature",
+                "GoogleDriveFeature",
+                "ContactListFeature"
+            ]
+        ),
+        .target(name: "CrashReporting"),
+        .target(name: "NetworkMonitor"),
+        .target(name: "VersionChecking"),
+        .target(name: "DependencyInjection"),
+        .target(name: "InputField", dependencies: ["Shared"]),
+        .binaryTarget(name: "Bindings", path: "XCFrameworks/Bindings.xcframework"),
+
+        // MARK: - Permissions
+
+            .target(
+                name: "Permissions",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - PushFeature
+
+            .target(
+                name: "PushFeature",
+                dependencies: [
+                    "Models",
+                    "Defaults",
+                    "Integration",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - TestHelpers
+
+            .target(
+                name: "TestHelpers",
+                dependencies: [
+                    "Models",
+                    "Presentation"
+                ]
+            ),
+
+        // MARK: - Keychain
+
+            .target(
+                name: "Keychain",
+                dependencies: [
+                    .product(
+                        name: "KeychainAccess",
+                        package: "KeychainAccess"
+                    )
+                ]
+            ),
+
+        // MARK: - Voxophone
+
+            .target(
+                name: "Voxophone",
+                dependencies: [
+                    "Shared"
+                ]
+            ),
+
+        // MARK: - Models
+
+            .target(
+                name: "Models",
+                dependencies: [
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    ),
+                    .product(
+                        name: "SwiftProtobuf",
+                        package: "swift-protobuf"
+                    )
+                ]
+            ),
+
+        // MARK: - Defaults
+
+            .target(
+                name: "Defaults",
+                dependencies: [
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - ToastFeature
+
+            .target(
+                name: "ToastFeature",
+                dependencies: [
+                    "Shared"
+                ]
+            ),
+
+        // MARK: - CrashService
+
+            .target(
+                name: "CrashService",
+                dependencies: [
+                    "CrashReporting",
+                    .product(
+                        name: "FirebaseCrashlytics",
+                        package: "firebase-ios-sdk"
+                    )
+                ]
+            ),
+
+        // MARK: - SFTPFeature
+
+            .target(
+                name: "SFTPFeature",
+                dependencies: [
+                    "HUD",
+                    "Models",
+                    "Shared",
+                    "Keychain",
+                    "InputField",
+                    "Presentation",
+                    "DependencyInjection",
+                    .product(
+                        name: "Shout",
+                        package: "Shout"
+                    )
+                ]
+            ),
+
+        // MARK: - GoogleDriveFeature
+
+            .target(
+                name: "GoogleDriveFeature",
+                dependencies: [
+                    .product(
+                        name: "GoogleSignIn",
+                        package: "GoogleSignIn-iOS"
+                    ),
+                    .product(
+                        name: "GoogleAPIClientForREST_Drive",
+                        package: "google-api-objectivec-client-for-rest"
+                    )
+                ],
+                resources: [.process("Resources")]
+            ),
+
+        // MARK: - iCloudFeature
+
+            .target(
+                name: "iCloudFeature",
+                dependencies: [
+                    .product(
+                        name: "FilesProvider",
+                        package: "FileProvider"
+                    )
+                ]
+            ),
+
+        // MARK: - DropboxFeature
+
+            .target(
+                name: "DropboxFeature",
+                dependencies: [
+                    .product(
+                        name: "SwiftyDropbox",
+                        package: "SwiftyDropbox"
+                    )
+                ],
+                resources: [.process("Resources")]
+            ),
+
+        // MARK: - Countries
 
-//        // MARK: - DependencyInjectionTests
-//
-//            .testTarget(
-//                name: "DependencyInjectionTests",
-//                dependencies: ["DependencyInjection"]
-//            ),
-//
-//        // MARK: - AppTests
-//
-//            .testTarget(
-//                name: "AppTests",
-//                dependencies: ["App"]
-//            ),
-//
-//        // MARK: - ProfileFeatureTests
-//
-//            .testTarget(
-//                name: "ProfileFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "ProfileFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - ContactFeatureTests
-//
-//            .testTarget(
-//                name: "ContactFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "ContactFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - SearchFeatureTests
-//
-//            .testTarget(
-//                name: "SearchFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "SearchFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - RequestsFeatureTests
-//
-//            .testTarget(
-//                name: "RequestsFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "RequestsFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - SettingsFeatureTests
-//
-//            .testTarget(
-//                name: "SettingsFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "SettingsFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - SettingsFeatureTests
-//
-//            .testTarget(
-//                name: "ChatListFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "ChatListFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - ContactListFeatureTests
-//
-//            .testTarget(
-//                name: "ContactListFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "ContactListFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - OnboardingFeatureTests
-//
-//            .testTarget(
-//                name: "OnboardingFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "OnboardingFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - PresentationTests
-//
-//            .testTarget(
-//                name: "PresentationTests",
-//                dependencies: [
-//                    "Presentation",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - ThemeTests
-//
-//            .testTarget(
-//                name: "ThemeTests",
-//                dependencies: [
-//                    "Theme",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - ChatFeatureTests
-//
-//            .testTarget(
-//                name: "ChatFeatureTests",
-//                dependencies: [
-//                    "ChatFeature",
-//                    "TestHelpers",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - ScanFeatureTests
-//
-//            .testTarget(
-//                name: "ScanFeatureTests",
-//                dependencies: [
-//                    "TestHelpers",
-//                    "ScanFeature",
-//                    .product(name: "Quick", package: "Quick"),
-//                    .product(name: "Nimble", package: "Nimble")
-//                ]
-//            ),
-//
-//        // MARK: - CollectionView
-//
-//            .target(
-//                name: "CollectionView",
-//                dependencies: [
-//                    .product(name: "ChatLayout", package: "ChatLayout"),
-//                    .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
-//                ]
-//            ),
-//            .testTarget(
-//                name: "CollectionViewTests",
-//                dependencies: [
-//                    .target(name: "CollectionView"),
-//                    .product(name: "CustomDump", package: "swift-custom-dump"),
-//                ]
-//            ),
-//    ]
-//)
+            .target(
+                name: "Countries",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "DependencyInjection"
+                ],
+                resources: [.process("Resources")]
+            ),
+
+        // MARK: - Theme
+
+            .target(
+                name: "Theme",
+                dependencies: [
+                    "Defaults",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - DrawerFeature
+
+            .target(
+                name: "DrawerFeature",
+                dependencies: [
+                    "Shared",
+                    "InputField",
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - HUD
+
+            .target(
+                name: "HUD",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    .product(
+                        name: "SnapKit",
+                        package: "SnapKit"
+                    )
+                ]
+            ),
+
+        // MARK: - XXLogger
+
+            .target(
+                name: "XXLogger",
+                dependencies: [
+                    .product(
+                        name: "SwiftyBeaver",
+                        package: "SwiftyBeaver"
+                    )
+                ]
+            ),
+
+        // MARK: - Shared
+
+            .target(
+                name: "Shared",
+                dependencies: [
+                    .product(
+                        name: "SnapKit",
+                        package: "SnapKit"
+                    ),
+                    .product(
+                        name: "ChatLayout",
+                        package: "ChatLayout"
+                    ),
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    )
+                ],
+                exclude: ["swiftgen.yml"],
+                resources: [.process("Resources")]
+            ),
+
+        // MARK: - Integration
+
+            .target(
+                name: "Integration",
+                dependencies: [
+                    "Shared",
+                    "Bindings",
+                    "XXLogger",
+                    "Keychain",
+                    "ToastFeature",
+                    "BackupFeature",
+                    "CrashReporting",
+                    "NetworkMonitor",
+                    "DependencyInjection",
+                    .product(
+                        name: "Retry",
+                        package: "Retry"
+                    ),
+                    .product(
+                        name: "XXDatabase",
+                        package: "client-ios-db"
+                    ),
+                    .product(
+                        name: "XXLegacyDatabaseMigrator",
+                        package: "client-ios-db"
+                    )
+                ],
+                resources: [.process("Resources")]
+            ),
+
+        // MARK: - Presentation
+
+            .target(
+                name: "Presentation",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    .product(
+                        name: "SnapKit",
+                        package: "SnapKit"
+                    )
+                ]
+            ),
+
+        // MARK: - ChatInputFeature
+
+            .target(
+                name: "ChatInputFeature",
+                dependencies: [
+                    "Voxophone",
+                    .product(
+                        name: "ComposableArchitecture",
+                        package: "swift-composable-architecture"
+                    )
+                ]
+            ),
+
+        // MARK: - RestoreFeature
+
+            .target(
+                name: "RestoreFeature",
+                dependencies: [
+                    "HUD",
+                    "Shared",
+                    "SFTPFeature",
+                    "Integration",
+                    "Presentation",
+                    "iCloudFeature",
+                    "DropboxFeature",
+                    "GoogleDriveFeature",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - ContactFeature
+
+            .target(
+                name: "ContactFeature",
+                dependencies: [
+                    "Shared",
+                    "InputField",
+                    "ChatFeature",
+                    "Presentation",
+                    .product(
+                        name: "CombineSchedulers",
+                        package: "combine-schedulers"
+                    ),
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - ChatFeature
+
+            .target(
+                name: "ChatFeature",
+                dependencies: [
+                    "HUD",
+                    "Theme",
+                    "Shared",
+                    "Defaults",
+                    "Keychain",
+                    "Voxophone",
+                    "Integration",
+                    "Permissions",
+                    "Presentation",
+                    "DrawerFeature",
+                    "ChatInputFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "ChatLayout",
+                        package: "ChatLayout"
+                    ),
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    ),
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - SearchFeature
+
+            .target(
+                name: "SearchFeature",
+                dependencies: [
+                    "HUD",
+                    "Shared",
+                    "Countries",
+                    "Integration",
+                    "Presentation",
+                    "ContactFeature",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - LaunchFeature
+
+            .target(
+                name: "LaunchFeature",
+                dependencies: [
+                    "HUD",
+                    "Theme",
+                    "Shared",
+                    "Defaults",
+                    "PushFeature",
+                    "Integration",
+                    "Permissions",
+                    "DropboxFeature",
+                    "VersionChecking",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - RequestsFeature
+
+            .target(
+                name: "RequestsFeature",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "Integration",
+                    "ToastFeature",
+                    "ContactFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    )
+                ]
+            ),
+
+        // MARK: - ProfileFeature
+
+            .target(
+                name: "ProfileFeature",
+                dependencies: [
+                    "HUD",
+                    "Theme",
+                    "Shared",
+                    "Keychain",
+                    "Defaults",
+                    "Countries",
+                    "InputField",
+                    "MenuFeature",
+                    "Permissions",
+                    "Integration",
+                    "Presentation",
+                    "DrawerFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "CombineSchedulers",
+                        package: "combine-schedulers"
+                    ),
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - ChatListFeature
+
+            .target(
+                name: "ChatListFeature",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "Defaults",
+                    "MenuFeature",
+                    "ChatFeature",
+                    "ProfileFeature",
+                    "SettingsFeature",
+                    "ContactListFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    )
+                ]
+            ),
+
+        // MARK: - OnboardingFeature
+
+            .target(
+                name: "OnboardingFeature",
+                dependencies: [
+                    "HUD",
+                    "Shared",
+                    "Defaults",
+                    "Keychain",
+                    "Countries",
+                    "InputField",
+                    "Permissions",
+                    "PushFeature",
+                    "Integration",
+                    "Presentation",
+                    "DrawerFeature",
+                    "VersionChecking",
+                    "DependencyInjection",
+                    .product(
+                        name: "CombineSchedulers",
+                        package: "combine-schedulers"
+                    ),
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - MenuFeature
+
+            .target(
+                name: "MenuFeature",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "Defaults",
+                    "Integration",
+                    "Presentation",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - BackupFeature
+
+            .target(
+                name: "BackupFeature",
+                dependencies: [
+                    "HUD",
+                    "Shared",
+                    "Models",
+                    "InputField",
+                    "SFTPFeature",
+                    "Presentation",
+                    "iCloudFeature",
+                    "DrawerFeature",
+                    "DropboxFeature",
+                    "GoogleDriveFeature",
+                    "DependencyInjection"
+                ]
+            ),
+
+        // MARK: - ScanFeature
+
+            .target(
+                name: "ScanFeature",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "Countries",
+                    "Permissions",
+                    "Integration",
+                    "Presentation",
+                    "ContactFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "SnapKit",
+                        package: "SnapKit"
+                    )
+                ]
+            ),
+
+        // MARK: - ContactListFeature
+
+            .target(
+                name: "ContactListFeature",
+                dependencies: [
+                    "Theme",
+                    "Shared",
+                    "Integration",
+                    "Presentation",
+                    "ContactFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "DifferenceKit",
+                        package: "DifferenceKit"
+                    )
+                ]
+            ),
+
+        // MARK: - SettingsFeature
+
+            .target(
+                name: "SettingsFeature",
+                dependencies: [
+                    "HUD",
+                    "Theme",
+                    "Shared",
+                    "Defaults",
+                    "Keychain",
+                    "InputField",
+                    "PushFeature",
+                    "Permissions",
+                    "MenuFeature",
+                    "Integration",
+                    "Presentation",
+                    "DrawerFeature",
+                    "DependencyInjection",
+                    .product(
+                        name: "CombineSchedulers",
+                        package: "combine-schedulers"
+                    ),
+                    .product(
+                        name: "ScrollViewController",
+                        package: "ScrollViewController"
+                    )
+                ]
+            ),
+
+        // MARK: - DependencyInjectionTests
+
+            .testTarget(
+                name: "DependencyInjectionTests",
+                dependencies: ["DependencyInjection"]
+            ),
+
+        // MARK: - AppTests
+
+            .testTarget(
+                name: "AppTests",
+                dependencies: ["App"]
+            ),
+
+        // MARK: - ProfileFeatureTests
+
+            .testTarget(
+                name: "ProfileFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "ProfileFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - ContactFeatureTests
+
+            .testTarget(
+                name: "ContactFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "ContactFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - SearchFeatureTests
+
+            .testTarget(
+                name: "SearchFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "SearchFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - RequestsFeatureTests
+
+            .testTarget(
+                name: "RequestsFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "RequestsFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - SettingsFeatureTests
+
+            .testTarget(
+                name: "SettingsFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "SettingsFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - SettingsFeatureTests
+
+            .testTarget(
+                name: "ChatListFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "ChatListFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - ContactListFeatureTests
+
+            .testTarget(
+                name: "ContactListFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "ContactListFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - OnboardingFeatureTests
+
+            .testTarget(
+                name: "OnboardingFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "OnboardingFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - PresentationTests
+
+            .testTarget(
+                name: "PresentationTests",
+                dependencies: [
+                    "Presentation",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - ThemeTests
+
+            .testTarget(
+                name: "ThemeTests",
+                dependencies: [
+                    "Theme",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - ChatFeatureTests
+
+            .testTarget(
+                name: "ChatFeatureTests",
+                dependencies: [
+                    "ChatFeature",
+                    "TestHelpers",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - ScanFeatureTests
+
+            .testTarget(
+                name: "ScanFeatureTests",
+                dependencies: [
+                    "TestHelpers",
+                    "ScanFeature",
+                    .product(name: "Quick", package: "Quick"),
+                    .product(name: "Nimble", package: "Nimble")
+                ]
+            ),
+
+        // MARK: - CollectionView
+
+            .target(
+                name: "CollectionView",
+                dependencies: [
+                    .product(name: "ChatLayout", package: "ChatLayout"),
+                    .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
+                ]
+            ),
+            .testTarget(
+                name: "CollectionViewTests",
+                dependencies: [
+                    .target(name: "CollectionView"),
+                    .product(name: "CustomDump", package: "swift-custom-dump"),
+                ]
+            ),
+    ]
+)