use iterators instead of indices to locate child node positions in the list