https://medium.com/better-programming/pass-variables-as-a-value-vs-as-a-reference-in-javascript-6956f5d93f7e