introduced 2 new traits ValueNode and ProcessNode in core to avoid cyclic dependencies