using anonymous functions to extend events

I was never very happy with creating models to extend events.
Sometimes I thought it would be nicer if we could simply pass a
function and guess what? We already can but we need to specify
some parameters not needed.
I've made the optional.