https://medium.com/@waleedmousa975/synchronous-vs-asynchronous-choosing-the-right-approach-for-your-javascript-projects-94e59cea3651