add gen_sim