Rework the types, change behavior of buffered generators
Fix comment on generate