generator makes sense now (well, as much as a generator can)