support inheritance
refactor
fix testcase
fix value binding