how to build your own plugin framework in c++