add a pushback generator type to make code nicer and in prep for better cycles