use shared WeakMap repo