reworked node factory