refactoring : add value_or_tag_t