rearrange Nodes::Node and ValueNodeFactory
extract rendering logic