public Dictionary <string, string> LoadList(string list, TimeSpan maxAge = default(TimeSpan))
        {
            Trace.WriteLine("Loading list");
            SetList(list);

            if (maxAge != default(TimeSpan) && maxAge < GetAgeOfList(list))
            {
                spList.RefreshLoad();
            }

            var q = new CamlQuery();
            ListItemCollection collListItem = spList.GetItems(q);

            clientContext.Load(
                collListItem,
                items => items.Include(
                    item => item["Key"],
                    item => item["Value"]));

            clientContext.ExecuteQuery();

            var dictionary = new Dictionary <string, string>();

            object keyName;
            object valueName;

            foreach (var item in collListItem)
            {
                item.FieldValues.TryGetValue("Key", out keyName);
                item.FieldValues.TryGetValue("Value", out valueName);
                Trace.WriteLine($"Populating list key {keyName.ToString()} value {valueName as string}");
                dictionary.Add(keyName.ToString(), valueName as string);
            }

            return(dictionary);
        }