instead of making a duplicate of the path, use iterators to update the nodes on the path