code: 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;
  	}
docs: produce instance and bind to context