removed the need for two identical generator prototypes by moving the period to an argument at instantiation