why do we need this? query is no longer a generator (it returns a generator, but executes the query immediately)