add gen_iso function