javascript two-way data binding library using getter / setter / event style updates.