implemented gen_values