docs: function flatten(obj) {
  	var flattenWorker = function(row, namespace, result) {
  		return _.reduce(row, function(result, value, key) {
  			var newKey;
  			newKey = "" + namespace + (namespace ? '.' : '') + key;
  			if (_.isPlainObject(value)) {
  				if (_.size(value)) {
  					flattenWorker(value, newKey, result);
  				}
  			} else {
  				result[newKey] = value;
  			}
  			return result;
  		}, result);
  	};
  	return flattenWorker(obj, '', {});
  }