code: public Object remove(Object key)
      {
          Object underlying = this.underlyingObjectGetter.getUnderlyingObject(key);
          return removeUsingUnderlying(underlying);
      }
docs: Removes and returns the entry associated with the specified key
  in the HashMap.  Returns null if the HashMap contains no mapping
  for this key.