async Task <List <Observation2> > LoadTheData()
        {
            var sf = await Package.Current.InstalledLocation.GetFileAsync(@"Assets\MSFT.json");

            var jsonText = await Windows.Storage.FileIO.ReadTextAsync(sf);

            var json   = JsonObject.Parse(jsonText);
            var prices = json.GetNamedObject("Time Series (Daily)");
            var list   = new List <Observation2>();

            foreach (var price in prices)
            {
                // this is an object not an array so we lose the ordering
                var date   = price.Key;
                var ts     = DateTime.Parse(date);
                var ohlcv  = price.Value.GetObject();
                var open   = ohlcv.GetNamedString("1. open");
                var high   = ohlcv.GetNamedString("2. high");
                var low    = ohlcv.GetNamedString("3. low");
                var close  = ohlcv.GetNamedString("4. close");
                var volume = ohlcv.GetNamedString("5. volume");
                var obs    = new Observation2(date, double.Parse(open), double.Parse(high), double.Parse(low), double.Parse(close), int.Parse(volume))
                {
                    Timestamp = ts
                };
                list.Add(obs);
            }
            // since it's a Map we need to sort things based on the "date" keys
            list.Sort((o1, o2) => {
                return(o1.Timestamp.CompareTo(o2.Timestamp));
            });
            return(list);
        }
        /// <summary>
        /// Fabricate the "next" observation.
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        protected Observation2 Next(string label)
        {
            var v1  = 4 + .5 - rnd.NextDouble();
            var v2  = 3 + .5 - rnd.NextDouble();
            var v3  = -2 + .5 - rnd.NextDouble();
            var v4  = -4 + .5 - rnd.NextDouble();
            var v5  = 10 * rnd.NextDouble();
            var obs = new Observation2(label, v1, v2, v3, v4, (int)v5);

            return(obs);
        }