Made all calls async, splitted the sample in reusable modules, use of LINQ to parse data