add gen methods