code: private Object _set(PageContext pc, Collection.Key key, Object value) throws ExpressionException {
  	if (value instanceof Member) {
  	    Member m = (Member) value;
  	    if (m instanceof UDFPlus) {
  		UDFPlus udf = (UDFPlus) m;
  		if (udf.getAccess() > Component.ACCESS_PUBLIC) udf.setAccess(Component.ACCESS_PUBLIC);
  		_data.put(key, udf);
  		_udfs.put(key, udf);
  		hasInjectedFunctions = true;
  	    }
  	    else _data.put(key, m);
  	}
  	else {
  	    Member existing = _data.get(key);
  	    if (loaded && !isAccessible(pc, existing != null ? existing.getAccess() : dataMemberDefaultAccess))
  		throw new ExpressionException("Component [" + getCallName() + "] has no accessible Member with name [" + key + "]",
  			"enable [trigger data member] in administrator to also invoke getters and setters");
  	    _data.put(key,
  		    new DataMember(existing != null ? existing.getAccess() : dataMemberDefaultAccess, existing != null ? existing.getModifier() : Member.MODIFIER_NONE, value));
  	}
  	return value;
      }
docs: sets a value to the current Component, dont to base Component
  
  @param key
  @param value
  @return value set
  @throws ExpressionException