Improved factoring of change handling and event firing