         let options: [String: Any] = [
             CBCentralManagerScanOptionAllowDuplicatesKey: NSNumber(value: filterDuplicates == false)
         ]
+        self.log("Will scan for nearby devices")
         return AsyncThrowingStream(ScanData<Peripheral, Advertisement>.self, bufferingPolicy: .bufferingNewest(100)) {  [weak self] continuation in
             guard let self = self else { return }
             self.async {

    }
    
    public func stopScan() async {
        await withCheckedContinuation { [weak self] (continuation: CheckedContinuation<(), Never>) in
            guard let self = self else { return }
            self.async {

    }
    
    public func disconnect(_ peripheral: Peripheral) {
        self.log("Will disconnect \(peripheral)")
        self.async { [weak self] in
            guard let self = self else { return }
            // get CoreBluetooth objects from cache
            guard let peripheralObject = self.cache.peripherals[peripheral] else {
                return
            }
            
            self.centralManager.cancelPeripheralConnection(peripheralObject)
        }
    }
    
    public func disconnectAll() {
        self.log("Will disconnect all")
        self.async { [weak self] in
            guard let self = self else { return }
            // get CoreBluetooth objects from cache
