Do all ValueChange math with doubles and then convert to correct type after
EventDataProvider should specify the class it is really returning, not what its owner wanted
Transform the left side into what the property wants
Indentation fix