class Server { private init() {} static let shared = Server.init() private static let serverQueue = DispatchQueue.global(qos: .background) func getCountries(completion: @escaping (Array) -> Void) { let countries = ["France", "Germany", "Spain", "Portugal"] let delay = Int.random(in: 1..<4) Self.serverQueue.asyncAfter(deadline: .now() + .seconds(delay)) { completion(countries) } } func getCapital(of country:String, completion: @escaping (String) -> Void) { let capitals = ["France":"Paris", "Germany":"Berlin", "Spain":"Madrid", "Portugal":"Lisbon"] let delay = Int.random(in: 1..<10) Self.serverQueue.asyncAfter(deadline: .now() + .seconds(delay)) { completion(capitals[country, default:"N/A"]) } } }