https://javascript.plainenglish.io/functional-javascript-17032a113930