/// <summary>
        /// Tracks an event.
        /// </summary>
        public void LogEvent(string eventType, object properties = null, bool outOfSession = false)
        {
            NSMutableDictionary dict = null;

            if (properties == null)
            {
                impl.LogEvent(eventType);
            }
            else
            {
                var jObject = (properties as JObject) ?? JObject.FromObject(properties);

                dict = new NSMutableDictionary();

                foreach (JProperty p in jObject.Properties())
                {
                    dict.Add((NSString)p.Name, (NSString)p.Value.ToString());
                }

                impl.LogEvent(eventType, dict, outOfSession);
            }
        }