https://javascript.plainenglish.io/day-30-can-you-master-javascripts-weakmap-and-weakset-3957f04c3f57