This module gathers all the code generation submodules and coordinates them, feeding them the right data.