renamed class because generator is a reserved word