add genMainCode()