What should plugins use: hooks, events or something else? Consider an app that allows plugins to react to its program flow.