docs: function addProperty (model, key, field_definition) {
  	var property = {
  		get : function() {
  			return this['_' + key];
  		},
  		set : function(value) {
  			this._updated_fields[key] = value;
  			// should we track old values here and revert them on save error?
  			this['_' + key] = value;
  		}
  	};
  
  	if (field_definition.get) {
  		property.get = field_definition.get;
  	}
  
  	if (field_definition.set) {
  		property.set = function (value) {
  			field_definition.set.call(this, value);
  			this._updated_fields[key] = this['_' + key];
  		};
  	}			
  
  	Object.defineProperty(model.prototype, key, property);
  }