docs: function Target(options = {}) {
  	options = clone(options);
  
  	let client = new Hipchatter(options.token);
  	let room = options.room;
  
  	delete options.token;
  	delete options.room;
  
  	let proto = {
  		message_format: 'html',
  		notify: false
  	};
  
  	for (let key in options) {
  		if (!options.hasOwnProperty(key)) {
  			break;
  		}
  
  		proto[key] = options[key];
  	}
  
  	return function(options, severity, date, message) {
  		let payload = clone(proto);
  
  		if (typeof payload.color !== 'string') {
  			switch(severity) {
  				case 'info':
  					payload.color = 'green';
  					break;
  
  				case 'warn':
  					payload.color = 'yellow';
  					break;
  
  				case 'error':
  					payload.color = 'red';
  					break;
  
  				default:
  					payload.color = 'gray';
  					break;
  			}
  		}
  
  		if (proto.message_format === 'html') {
  			payload.message = escape(message)
  				.replace(/\n/g, '<br/>')
  				.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
  		}
  		else {
  			payload.message = message;
  		}
  
  		client.notify(room, payload, function(err) {
  			if (err) {
  				console.log(err);
  			}
  		});
  	};
  }