refactor value_holder