WeakHashMap renamed to WeakValueHashMap to avoid confusion