If you're monitoring grandhildren and add a child that already has lots of grandchildren, is there just one childAdded call for the child, or do each of the new grandchildren cause childAdded() to be called? If so, what are the performance implications? Could this end up being O(n*n)? In the original version, iirc, the prohibition on DocumentFragments was there to prevent multiple childAdded calls.