Register each attribute's change event individually, rather than a huge update event

I haven't tested this extensively.  @DavidMascharka: what do you think of the changes?