https://medium.com/@steventoka19/mastering-javascript-essential-techniques-for-modern-web-development-60412686cfcf