private void RecursiveAdd(int depth, List <object> coordinates, FractalDictionary instance, object value)
        {
            if (depth == 0)
            {
                instance.content = value;

                /*
                 * if (instance.innerDictionary != null)
                 * {
                 *  instance.innerDictionary = null;
                 *  totalInnerDictionaries--;
                 * }
                 */
            }
            else
            {
                FractalDictionary iteration;
                instance.innerDictionary.TryGetValue(coordinates[coordinates.Count - depth], out iteration);

                if (iteration == null)
                {
                    iteration = new FractalDictionary();
                    instance.innerDictionary[coordinates[coordinates.Count - depth]] = iteration;
                }

                RecursiveAdd(depth - 1, coordinates, iteration, value);
            }
        }
        private object RecursiveTryGet(int depth, List <object> coordinates, FractalDictionary instance)
        {
            if (depth == 0)
            {
                return(instance.content);
            }
            else
            {
                FractalDictionary iteration;
                instance.innerDictionary.TryGetValue(coordinates[coordinates.Count - depth], out iteration);

                if (iteration != null)
                {
                    return(RecursiveTryGet(depth - 1, coordinates, iteration));
                }
                else
                {
                    return(null);
                }
            }
        }