public static Foundation.NSDictionary ToNSDictionary(this JObject json)
        {
            Dictionary <string, object> propertyValuePairs = json.ToObject <Dictionary <string, object> >();

            ProcessJObjectProperties2(propertyValuePairs);
            ProcessJArrayProperties2(propertyValuePairs);

            Foundation.NSMutableDictionary nsdict = new Foundation.NSMutableDictionary();
            foreach (KeyValuePair <string, object> kvp in propertyValuePairs)
            {
                nsdict.Add(new Foundation.NSString(kvp.Key), Foundation.NSObject.FromObject(kvp.Value));
            }
            return(nsdict);
        }
        /// <summary>
        /// Gets the Plot interface.
        /// </summary>
        /// <returns>a link to the Plot interface</returns>
        /// <param name="launchOptions">the launchOptions passed to the delegate</param>
        /// <param name="debug">whether debug logging should be enabled</param>
        public static IPlot GetInstance(Foundation.NSDictionary launchOptions, bool debug)
        {
            PlotImplementation instance = (PlotImplementation)GetInstance();

            instance.Release = !debug;

            if (launchOptions == null)
            {
                launchOptions = new Foundation.NSDictionary();
            }

            Foundation.NSMutableDictionary extendedLaunchOptions = new Foundation.NSMutableDictionary(launchOptions);
            extendedLaunchOptions.Add(new Foundation.NSString("plot-xamarin-version"), new Foundation.NSString(Mono.Runtime.GetDisplayName()));
            instance.InitWithLaunchOptions(extendedLaunchOptions);
            return(instance);
        }