yield is way simpler