node and factory