explore extending Function.prototype (does not look too good)