added dynamic loading and unloading of modules