https://medium.com/@oludaredolamu/harnessing-the-power-of-python-generators-a-comprehensive-guide-df088f846f5e