updated node generation