/// <summary>
        /// Create a nested property container.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="containerBuilder"></param>
        /// <returns></returns>
        public PropertyContainerBuilder PropertyContainer(string name, Action <PropertyContainerBuilder> containerBuilder)
        {
            if (config.ContainsData(name))
            {
                DataContainerEvents.NotifyInformation($"Attempted to add invalid value : {name}");
            }

            var builder = Create(name);

            containerBuilder?.Invoke(builder);

            config.Add(new ContainerPropertyObject(name, builder.Build()));

            return(this);
        }