updated implementation of class value_option