https://mysteryweevil.medium.com/mastering-the-await-operator-a-beginners-guide-to-asynchronous-programming-in-javascript-8d60b8d69802