updated mixgen func