https://javascript.plainenglish.io/es6-adds-the-let-property-instead-of-the-function-closure-to-solve-the-problem-b887af954039