add dependency on WeakMap