@Override
  public V put(@NotNull K key, @NotNull V value) {
    ValueReference<K, V> oldRef = myMap.put(key, createValueReference(key, value));
    processQueue();
    return oldRef != null ? oldRef.get() : null;
  }
@Override
  public V put(@NotNull K key, @NotNull V value)