reorganize generating-node to remove a circular dependency