also accept factory in node_info decorator __init__