add: gen_add