need to organise the compiling because the module is owned by CodeGenAction