Handle 3 cases, all written down in comments. Crossing my fingers 🤞🤞🤞
Turns out I'm using WeakMap wrong