whole_func_string: function(name, value) {
  			if (arguments.length == 2) {
  				// modifying attribute
  				var ix = _.indexOf(_.pluck(this._attributes, 'name'), name.toLowerCase());
  				if (~ix) {
  					this._attributes[ix].value = value;
  				} else {
  					this._attributes.push({
  						name: name,
  						value: value
  					});
  				}
  			}
  			
  			return (_.find(this.attributeList(), function(attr) {
  				return attr.name == name;
  			}) || {}).value;
  		}
func_code_string: function(name, value) {
  			if (arguments.length == 2) {
  				// modifying attribute
  				var ix = _.indexOf(_.pluck(this._attributes, 'name'), name.toLowerCase());
  				if (~ix) {
  					this._attributes[ix].value = value;
  				} else {
  					this._attributes.push({
  						name: name,
  						value: value
  					});
  				}
  			}
  			
  			return (_.find(this.attributeList(), function(attr) {
  				return attr.name == name;
  			}) || {}).value;
  		}
func_documentation_string: Returns or sets attribute value
  @param {String} name Attribute name
  @param {String} value New attribute value
  @returns {String}