init updated. set_value(v) not finished yet