modify genNode function