Change the generation class structure.

- Add all the major variables as class members
- use reduced avenues