observing and enabling change on the data model