dual function generator