docs: function Panel( canvas ) {
  
  	// INSTANCE ATTRIBUTES //
  
  	this._parent = canvas;
  	this._root = undefined;
  	this._children = {};
  
  	this._config = {
  		"width": 600,
  		"height": 400,
  		"position": {
  			"top": 80,
  			"left": 90
  		},
  		"padding": {
  			"top": 0,
  			"left": 0
  		},
  		"gutter": 0,
  		"background": false,
  		"scales": [
  			{
  				"name": "x",
  				"type": "linear",
  				"domain": {
  					"min": null,
  					"max": null
  				},
  				"range": {
  					"min": 0,
  					"max": 600
  				}
  			},
  			{
  				"name": "y",
  				"type": "linear",
  				"domain": {
  					"min": null,
  					"max": null
  				},
  				"range": {
  					"min": 0,
  					"max": 400
  				}
  			}
  		],
  		"axes": [
  			{
  				"display": true,
  				"scale": "x",
  				"label": "x",
  				"ticks": {
  					"display": true,
  					"num": 5,
  					"format": null,
  					"padding": 3,
  					"innerSize": 6,
  					"outerSize": 6,
  					"rotation": 0,
  					"direction": "out"
  				},
  				"orient": "bottom"
  			},
  			{
  				"display": true,
  				"scale": "y",
  				"label": "y",
  				"ticks": {
  					"display": true,
  					"num": 5,
  					"format": null,
  					"padding": 3,
  					"innerSize": 6,
  					"outerSize": 6,
  					"rotation": 0,
  					"direction": "out"
  				},
  				"orient": "left"
  			}
  		]
  	};
  
  	// SCALES //
  	this._xScale = d3.scale.linear()
  		.domain([
  			this._config.scales[ 0 ].domain.min,
  			this._config.scales[ 0 ].domain.max
  		])
  		.range([
  			this._config.scales[ 0 ].range.min,
  			this._config.scales[ 0 ].range.max
  		]);
  	this._yScale = d3.scale.linear()
  		.domain([
  			this._config.scales[ 1 ].domain.min,
  			this._config.scales[ 1 ].domain.max
  		])
  		.range([
  			this._config.scales[ 1 ].range.max,
  			this._config.scales[ 1 ].range.min
  		]);
  
  	// DATA //
  	this._data = null;
  
  	return this;
  }