refactor how modules are loaded and used.
core: no need to return.