lib/interpolable.js
function(context, callback, binds) {
		var instance = new Instance(this);
		var count = 0,
			binded = false;
		for (var i = 1, len = this.parts.length; i < len; i = i + 2) {
			var block = this.parts[i];
			if (block.binded) {
				binded = true;
				var h = handler(instance, context, block.func, count, callback),
					dep = block.dep;
				for (var j = 0, lenJ = dep.length; j < lenJ; j++)
					context.subscribe(dep[j], h, false, instance.binds);
			}
			count++;
		}
		if (binded && binds)
			binds.push(unsub(instance));
		return instance;
	}
function(context, callback, binds) {
		var instance = new Instance(this);
		var count = 0,
			binded = false;
		for (var i = 1, len = this.parts.length; i < len; i = i + 2) {
			var block = this.parts[i];
			if (block.binded) {
				binded = true;
				var h = handler(instance, context, block.func, count, callback),
					dep = block.dep;
				for (var j = 0, lenJ = dep.length; j < lenJ; j++)
					context.subscribe(dep[j], h, false, instance.binds);
			}
			count++;
		}
		if (binded && binds)
			binds.push(unsub(instance));
		return instance;
	}
function ( context , callback , binds ) { var instance = new Instance ( this ) ; var count = 0 , binded = false ; for ( var i = 1 , len = this . parts . length ; i < len ; i = i + 2 ) { var block = this . parts [ i ] ; if ( block . binded ) { binded = true ; var h = handler ( instance , context , block . func , count , callback ) , dep = block . dep ; for ( var j = 0 , lenJ = dep . length ; j < lenJ ; j ++ ) context . subscribe ( dep [ j ] , h , false , instance . binds ) ; } count ++ ; } if ( binded && binds ) binds . push ( unsub ( instance ) ) ; return instance ; }
produce instance and bind to context
produce instance and bind to context