implement sequential generators as generic