change of Val design
update doc on impl design