add Value struct