lib/index.js
function Cache (key, opt) {
	if (!(this instanceof Cache))
		return new Cache(key, opt);

	if(key)
		this.setToken(key);

	this.config = _.defaults(opt || {}, {
		protocol :'https',
		fragment : '_escaped_fragment_',
		service : 'service.cache.watch',
		path : '/',
		sender : {
		    method : 'get',
			headers: {
				'User-Agent': 'CacheWatch Client'
			},
		},
		auth :  'x-cache-watch',
		lengths : 150,
		useragent : pack.config.useragent,
		url : pack.config.extencion
	});

	var that = this;

	that.watch = function CacheWatch (req, res, next){
		var query = querystring.parse(url.parse(req.url).query);
		if(that.isNot(req, query) || !that.key)
			return next();

		that.get(that.createUrl(req, query), function (err, resp, body) {
			if(err || that.res(resp))
				return next();

			res.setHeader('CacheWatch', Cache.version);
			res.setHeader('last-modified', resp.headers['last-modified']);
			res.setHeader('content-type', resp.headers['content-type']);
			res.send(body);
		});
	};

}
function Cache (key, opt) {
	if (!(this instanceof Cache))
		return new Cache(key, opt);

	if(key)
		this.setToken(key);

	this.config = _.defaults(opt || {}, {
		protocol :'https',
		fragment : '_escaped_fragment_',
		service : 'service.cache.watch',
		path : '/',
		sender : {
		    method : 'get',
			headers: {
				'User-Agent': 'CacheWatch Client'
			},
		},
		auth :  'x-cache-watch',
		lengths : 150,
		useragent : pack.config.useragent,
		url : pack.config.extencion
	});

	var that = this;

	that.watch = function CacheWatch (req, res, next){
		var query = querystring.parse(url.parse(req.url).query);
		if(that.isNot(req, query) || !that.key)
			return next();

		that.get(that.createUrl(req, query), function (err, resp, body) {
			if(err || that.res(resp))
				return next();

			res.setHeader('CacheWatch', Cache.version);
			res.setHeader('last-modified', resp.headers['last-modified']);
			res.setHeader('content-type', resp.headers['content-type']);
			res.send(body);
		});
	};

}
/*
var cache = require('cachewatch');
var watch = cache();
watch.setToken('--My key--');

var opts = {
My Opts
};
app.use(['/MyUrl'], cache('My Key', opts).watch);
app.use(cache('My Key', opts).watch);
app.use(cache('My Key').watch);
app.use(watch.watch);