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); } }