public void Execute(Item startItem) { // get items var items = ItemRetriever.GetItems(startItem); // items -> request models var requestModelCollection = RequestParser.Convert(items); // serialize request models var requestData = RequestModelCollectionSerializer.Convert(requestModelCollection); // execute request & get response Task <string> task = Task.Run(async() => await KeyPhrasesRequester.GetResponse(requestData)); //var responseData = KeyPhrasesRequester.GetResponse(requestData); // parse response var responseModelCollection = ResponseParser.Convert(task.Result); // handle parsed response ResponseHandler.DoHandleResponse(responseModelCollection); }