I am trying to create a program that will incorporate DLL files in a type of "plugin" architecture, but I can't figure out how to implement. Basically, I need the Main program to look for and load all Plugin files it finds, and then I obviously need them to interact with each other. What is the best way to implement this as far as overhead goes, and how to I import the plugin architecture so that the Main program knows what to expect while still being able to reference the Public elements of the Main program itself from within the Plugin? I have a working program right now, but it does not implement the plugin architecture I desire. See the attached screenshot. The "Collections" would each be their own DLL file.