      */
     @discardableResult
     @MainActor
+    @available(iOS 15, macOS 12, *)
     func fetchData<T>(taskGenerator: @escaping SwiftConcurrencyGenerator<T>, animated: Bool = true, errorMessage: String = "error", completion: @escaping SwiftConcurrencyCompletion<T>) -> _Concurrency.Task<(), Never> {
         let task = _Concurrency.Task(priority: .userInitiated) {
             bsw_showLoadingView(animated: animated)

    }

    @MainActor
    private func handleError<T>(_ error: Swift.Error, errorMessage: String, taskGenerator: @escaping SwiftConcurrencyGenerator<T>, animated: Bool, completion: @escaping SwiftConcurrencyCompletion<T>) {
        let localizedErrorMessage = (errorMessage == "error") ? errorMessage.localized : errorMessage
        let errorView = UIViewController.errorViewFactory(localizedErrorMessage, error) { [weak self] in

        return task
    }

    @available(iOS 15, macOS 12, *)
    typealias SwiftConcurrencyGenerator<T> = () async throws -> (T)
    @available(iOS 15, macOS 12, *)
    typealias SwiftConcurrencyCompletion<T> = (T) -> ()

    /**
