model change event + tests