move implementation from .h to .cpp
refactor read_value_node/