https://skilledcoder.medium.com/mastering-javascript-smart-tips-and-techniques-for-developers-426a3cad27b7