old_contents: /**
   * @module color-space/hsl
   */
  
  var rgb = require('./rgb');
  
  module.exports = {
  	name: 'hsl',
  	min: [0,0,0],
  	max: [360,100,100],
  	channel: ['hue', 'saturation', 'lightness'],
  
  	rgb: function(hsl) {
  		var h = hsl[0] / 360,
  				s = hsl[1] / 100,
  				l = hsl[2] / 100,
  				t1, t2, t3, rgb, val;
  
  		if (s === 0) {
  			val = l * 255;
  			return [val, val, val];
  		}
  
  		if (l < 0.5) {
  			t2 = l * (1 + s);
  		}
  		else {
  			t2 = l + s - l * s;
  		}
  		t1 = 2 * l - t2;
  
  		rgb = [0, 0, 0];
  		for (var i = 0; i < 3; i++) {
  			t3 = h + 1 / 3 * - (i - 1);
  			if (t3 < 0) t3++;
  			else if (t3 > 1) t3--;
  
  			if (6 * t3 < 1) {
  				val = t1 + (t2 - t1) * 6 * t3;
  			}
  			else if (2 * t3 < 1) {
  				val = t2;
  			}
  			else if (3 * t3 < 2) {
  				val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
  			}
  			else {
  				val = t1;
  			}
  
  			rgb[i] = val * 255;
  		}
  
  		return rgb;
  	}
  };
  
  
  //extend rgb
  rgb.hsl = function(rgb) {
  	var r = rgb[0]/255,
  			g = rgb[1]/255,
  			b = rgb[2]/255,
  			min = Math.min(r, g, b),
  			max = Math.max(r, g, b),
  			delta = max - min,
  			h, s, l;
  
  	if (max === min) {
  		h = 0;
  	}
  	else if (r === max) {
  		h = (g - b) / delta;
  	}
  	else if (g === max) {
  		h = 2 + (b - r) / delta;
  	}
  	else if (b === max) {
  		h = 4 + (r - g)/ delta;
  	}
  
  	h = Math.min(h * 60, 360);
  
  	if (h < 0)
  		h += 360;
  
  	l = (min + max) / 2;
  
  	if (max === min) {
  		s = 0;
  	}
  	else if (l <= 0.5) {
  		s = delta / (max + min);
  	}
  	else {
  		s = delta / (2 - max - min);
  	}
  
  	return [h, s * 100, l * 100];
  };
new_contents: /**
   * @module color-space/hsl
   */
  
  var rgb = require('./rgb');
  
  module.exports = {
  	name: 'hsl',
  	min: [0,0,0],
  	max: [360,100,100],
  	channel: ['hue', 'saturation', 'lightness'],
  
  	rgb: function(hsl) {
  		var h = hsl[0] / 360,
  				s = hsl[1] / 100,
  				l = hsl[2] / 100,
  				t1, t2, t3, rgb, val;
  
  		if (s === 0) {
  			val = l * 255;
  			return [val, val, val];
  		}
  
  		if (l < 0.5) {
  			t2 = l * (1 + s);
  		}
  		else {
  			t2 = l + s - l * s;
  		}
  		t1 = 2 * l - t2;
  
  		rgb = [0, 0, 0];
  		for (var i = 0; i < 3; i++) {
  			t3 = h + 1 / 3 * - (i - 1);
  			if (t3 < 0) {
  				t3++;
  			}
  			else if (t3 > 1) {
  				t3--;
  			}
  
  			if (6 * t3 < 1) {
  				val = t1 + (t2 - t1) * 6 * t3;
  			}
  			else if (2 * t3 < 1) {
  				val = t2;
  			}
  			else if (3 * t3 < 2) {
  				val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
  			}
  			else {
  				val = t1;
  			}
  
  			rgb[i] = val * 255;
  		}
  
  		return rgb;
  	}
  };
  
  
  //extend rgb
  rgb.hsl = function(rgb) {
  	var r = rgb[0]/255,
  			g = rgb[1]/255,
  			b = rgb[2]/255,
  			min = Math.min(r, g, b),
  			max = Math.max(r, g, b),
  			delta = max - min,
  			h, s, l;
  
  	if (max === min) {
  		h = 0;
  	}
  	else if (r === max) {
  		h = (g - b) / delta;
  	}
  	else if (g === max) {
  		h = 2 + (b - r) / delta;
  	}
  	else if (b === max) {
  		h = 4 + (r - g)/ delta;
  	}
  
  	h = Math.min(h * 60, 360);
  
  	if (h < 0) {
  		h += 360;
  	}
  
  	l = (min + max) / 2;
  
  	if (max === min) {
  		s = 0;
  	}
  	else if (l <= 0.5) {
  		s = delta / (max + min);
  	}
  	else {
  		s = delta / (2 - max - min);
  	}
  
  	return [h, s * 100, l * 100];
  };
subject: Add climate enhancement