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
Handle Number like Double in ValueChange
Don't create a transformer for upcasts