switch over to weakmap-shim