feat(gen): generate a more modular project stucture