docs: function Box( graph ) {
  	var self = this;
  
  	// INSTANCE ATTRIBUTES //
  
  	this._parent = graph;
  	this._root = undefined;
  	this._children = {};
  	this._config = {
  		'type': 'box-and-whisker',
  		'labels': [],
  		'radius': 3,
  		'width': 1
  	};
  
  	// DATA //
  
  	this._data = graph._data;
  
  	// ACCESSORS //
  
  	this._accessors = {
  		'median': function median( d ) {
  			return [ [ d[1], d[1] ] ];
  		},
  		'quartiles': function quartiles( d ) {
  			return [ d[2] ];
  		},
  		'centers': function centers( d ) {
  			var _d = d[ 3 ],
  				arr = [];
  			for ( var i = 0; i < _d.length; i++ ) {
  				arr.push( [ _d[i], d[1] ] );
  			}
  			return arr;
  		},
  		'whiskers': function whiskers( d ) {
  			var arr = [];
  			d = d[ 3 ];
  			for ( var i = 0; i < d.length; i++ ) {
  				arr.push( [ d[i], d[i] ] );
  			}
  			return arr;
  		},
  		'mOutliers': function outliers( d ) {
  			if ( d.length > 4 && d[ 4 ].length ) {
  				return d[4];
  			}
  			return [];
  		},
  		'eOutliers': function outliers( d ) {
  			if ( d.length > 5 && d[ 5 ].length ) {
  				return d[5];
  			}
  			return [];
  		}
  	};
  
  	// TRANSFORMS //
  
  	this._transforms = {
  		'group': {
  			'x': function X( d, w ) {
  				return graph._xScale( d[ 0 ] ) - w;
  			}
  		},
  		'line': {
  			'y1': function Y1( d ) {
  				return graph._yScale( d[ 0 ] );
  			},
  			'y2': function Y2( d ) {
  				return graph._yScale( d[ 1 ] );
  			}
  		},
  		'rect': {
  			'y': function Y( d ) {
  				return graph._yScale( d[ 1 ] );
  			},
  			'height': function Height( d ) {
  				var height = graph._yScale( d[ 0 ] ) - graph._yScale( d[ 1 ] );
  				return Math.abs( height );
  			}
  		},
  		'circle': {
  			'cy': function Y( d ) {
  				return graph._yScale( d );
  			},
  			'r': function R( d ) {
  				return self._config.radius;
  			}
  		}
  	};
  
  	// REGISTER //
  	if ( graph._config.hasOwnProperty( 'marks' ) ) {
  		graph._config.marks.push( this._config );
  	} else {
  		graph._config.marks = [ this._config ];
  	}
  	if ( graph._children.hasOwnProperty( 'marks' ) ) {
  		graph._children.marks.push( this );
  	} else {
  		graph._children.marks = [ this ];
  	}
  
  	return this;
  }