                                 completion: @escaping (Card?, Error?) -> ()) {
         self.publishCard(privateKey: privateKey, publicKey: publicKey, identity: identity,
                          previousCardId: previousCardId, extraFields: extraFields)
-            .start { result in
-                switch result {
-                case .success(let card):
-                    completion(card, nil)
-                case .failure(let error):
-                    completion(nil, error)
-                }
-            }
+            .start(completion: completion)
     }
 
     /// Asynchronously performs search of Virgil Cards using identity on the Virgil Cards Service

    ///   - rawCard: self signed `RawSignedModel`
    ///   - completion: completion handler, called with published and verified Card or corresponding error
    @objc open func publishCard(rawCard: RawSignedModel, completion: @escaping (Card?, Error?) -> ()) {
        self.publishCard(rawCard: rawCard).start { result in
            switch result {
            case .success(let card):
                completion(card, nil)
            case .failure(let error):
                completion(nil, error)
            }
        }
    }

    /// Asynchronously generates self signed RawSignedModel and creates Virgil Card

    ///   - identity: identity of cards to search
    ///   - completion: completion handler, called with found and verified Cards or corresponding error
    @objc open func searchCards(identity: String, completion: @escaping ([Card]?, Error?) -> ()) {
        self.searchCards(identity: identity).start(completion: completion)
    }
}
