Allow data to be provided when trigger is invoked

Isn't there a case here where we don't call extend? Also this would possibly leave us with a e.data = {} -- not sure if we care there or not, but previously e.data would only be present if it had stuff