lightweight 2-way hierarchical databinding