using a WeakValueDictionary for the class memory