I have literally no knowledge on Swift or OOP but I have to build a basic BLE Scanner app. I found an example, I read it, tried to understand and develop from where it stands.

Now, I have a function like this

```
 @objc private func startSearch() {
    bluetoothProvider.startScanning()
        .filter { [weak self] newPeripheral in
            guard let self = self else { return false }
            return !self.scannedPeripherals.contains(where: { $0.peripheral.identifier == newPeripheral.peripheral.identifier
            })
        }

        .subscribe(onNext: { [weak self] in self?.scannedPeripherals.append($0) })
        .disposed(by: disposeBag)
}

```

I literally didn't understand anything from week, guard part... But I guess I got the the other stuffs. Now I wanna add at least an other filter, but it doesn't look any other filter mechanism that I can find in tutorials or examples. Can anyone explain the format here or help to add another filter on it?

I tried those these

```
        .filter { [weak self] filteredPeripheral in
            guard let self = self else { return false }
            return !self.scannedPeripherals.contains(where: { _ in filteredPeripheral.rssi.intValue < 0
            })
                }

        .filter{ [weak self] filteredPeripheral in
            guard let self = self else { return false }
            return !self.scannedPeripherals.contains(where: { $0.peripheral.identifier.uuidString.contains("0863")
            })
                }

```

but nothing looks effected.