Moved HttpClient to field from Deliver method, added null reference checks to factory method, modified synchronous Deliver method to call async method overload and Wait rather than copy/paste logic, added [Obsolete] on async Deliver method with a void signature, added DeliverAsync with a Task<string> and CancellationToken.