public Object evaluate(Context c, HashMap map, DataFactory factory) {
		for (int i = 0; i < children.size(); i += 1) {
			DataObject component = (DataObject) map.get(children.get(i));
			if(component instanceof Return){
				DataObject returnedElement = (DataObject) component.evaluate(c, map, factory);
				this.setFunctionReturnedElementID(returnedElement.getUniqueID());
				this.setReturning(true);
				return returnedElement;
			}
			component.evaluate(c, map, factory);
			if(this.isReturning()){
				if(functionReturnedElementID != null){
					return map.get(functionReturnedElementID);
				}
				return IVPValue.NULL;
			}			

			
		}
		return null;
	}