I am working on an application which uses plugin system. There are many different kinds of plugins: data readers, plot creators, computing kernels and so on. For simplicity let us assume that only two kinds are available. My question is how to manage those plugins in the sense of registering them. Should I use some flag (read by the app at register event) inside DLLs indicating if it is data reader plugin or plotting plugin? Or maybe I should place each kind of plugins in a different folder, etc. Of course plugin management system has different interfaces and managers for every kind. How do you handle such cases?