https://mysteryweevil.medium.com/mastering-private-variables-understanding-closures-in-javascript-bf432d2b9641