public T this[uint x, uint y, uint z]
        {
            get
            {
                assertBounds(x, y, z);

                return(root[x, y, z]);
            }
            set
            {
                assertBounds(x, y, z);

                root = nodeFactory.WithSet(root, x, y, z, value);
            }
        }