https://medium.com/the-kotlin-primer/sequences-yield-vs-return-how-pausing-functions-work-e7d0c32917b1