don't create generator each time