For quite a while I\'ve been using linker sections for registering elements that are used at runtime. I find that it\'s a simple way to make generic and extensible