My previous comment still applies here:

You should make sure that the local variables are only the ones you want to make available. Currently the user could also access `self` and `msg`.