https://varshini-as.medium.com/deep-dive-into-javascript-lexical-scope-closures-and-this-keyword-20d4e0aa3581