Use import (or some kind of that, using imp module) instead of exec for plugins, writing a standard package for plugins (to import, like import frozen.abstract-plugin) which contains basic functions to manage any kind of need: a register function to add something to dispatch (without having to pass that in global dictionary), some way to add and modify classes (need to use a ""namespace"" object?), and so on.
Use import (or some kind of that, using imp module) instead of exec for plugins, writing a standard package for plugins (to import, like import frozen.abstract-plugin) which contains basic functions to manage any kind of need: a register function to add something to dispatch (without having to pass that in global dictionary), some way to add and modify classes (need to use a ""namespace"" object?), and so on.