https://medium.com/@auvehassan/understanding-inline-functions-in-kotlin-a-complete-guide-27ef7ed09b67