module api: seperade saveConfig from loadConfig
execute hooks as goroutines
Define the Module interface before defining the ModuleSet struct
Define plugin struct before Init function