             let lastEnd = response.handles.last?.groupEnd ?? 0x00
             
             guard lastEnd < .max // End of database
-                else { operation.success(); return }
+                else { return }
             
             operation.start = lastEnd + 1
             
             // need to continue scanning
             if lastEnd < operation.end {
-                
                 let request = ATTFindByTypeRequest(
                     startHandle: operation.start,
                     endHandle: operation.end,

    /// - Parameter service: The service.
    /// - Parameter completion: The completion closure.
    public func discoverAllCharacteristics(of service: Service) async throws -> [Characteristic] {
        
        // The Attribute Protocol Read By Type Request shall be used with the Attribute Type
        // parameter set to the UUID for «Characteristic» The Starting Handle shall be set to 
        // starting handle of the specified service and the Ending Handle shall be set to the 
        // ending handle of the specified service.
        
        return try await discoverCharacteristics(service: service)
    }
    

    public func discoverPrimaryServices(
        by uuid: BluetoothUUID
    ) async throws -> [Service]{
        // The Attribute Protocol Find By Type Value Request shall be used with the Attribute Type
        // parameter set to the UUID for «Primary Service» and the Attribute Value set to the 16-bit
        // Bluetooth UUID or 128-bit UUID for the specific primary service. 
