add node and node factory class
use node class