https://tutorial.eyehunts.com/js/shallow-copy-vs-deep-copy-javascript/
Shallow copy vs Deep copy JavaScript