Doesn't sound so bad to me. If we added an "execution scope" which contained the `event` object you'd get all that goodness without dirtying up the global scope or clobbering variables on your view. For example with [schematic/scope](https://github.com/schematic/scope) (shameless plug) you could implement it like so:

```javascript
var scope = new Scope([model, view, {model: model, view: view, event: undefined}]);

// before each event handler
scope.set('event', event);
// execute the handler set so all variables are rewritten to use `scope.get("variableName")`
``` 

If you happen to need to access a property named "event" you can use `model.event` or `view.event` while retaining access to the actual event object.