Re-write the short term by pure OOP through SOPTClass
Finished buildGen method