deep data binding
more careful nested value binding