Have 2 modules a wrapper and then the foundation. The user can load the real module which basically just lets them create an initialization object which then sets a bunch of very oddly named globals and then loads your desired module which looks for those.. Sort of an icky way of doing it but it's not bad