more about cgen