         
         let start = characteristic.handle.value + 1
         
-        let end = start // FIXME:
+        let end = endHandle(for: characteristic, service: service)
         
         let operation = DescriptorDiscoveryOperation(start: start, end: end, completion: completion)
         

        
        let completion: (GATTClientResponse<[Descriptor]>) -> ()
        
        init(characteristic: Characteristic,
             completion: @escaping (GATTClientResponse<[Descriptor]>) -> ()) {
            
            self.start = characteristic.handle.declaration
            self.end = characteristic.handle.value
            self.completion = completion
        }
        
        init(start: UInt16,
             end: UInt16,
             completion: @escaping (GATTClientResponse<[Descriptor]>) -> ()) {

     ![Image](https://github.com/PureSwift/Bluetooth/raw/master/Assets/DiscoverAllCharacteristicDescriptors.png)
     */
    public func discoverDescriptors(for characteristic: Characteristic,
                                    service: (declaration: Service, characteristics: [Characteristic]),
                                    completion: @escaping (GATTClientResponse<[Descriptor]>) -> ()) {
        
        /**
