rewrote NodeIterator to not use collection
simplified children changed event and moved updating of collection members to collection code to reduce cost of modification of trees