docs: function(original, splitted, strict) {
  	this.__interpolable__ = true;
  	this._strict = strict || false;
  	var dp;
  	if (splitted.length === 7 && splitted[0] === "" && splitted[6] === "")
  		this.directOutput = directOutput;
  	// interpolable string
  	this.parts = [];
  	this.original = original;
  	this.dependenciesCount = 0;
  	var part = splitted[0],
  		index = 0;
  	while (part !== undefined) {
  		this.parts.push(part);
  		if (index + 1 === splitted.length)
  			break;
  		var bracket = splitted[index + 1];
  		if (bracket.length !== splitted[index + 5].length)
  			throw new Error('interpolation need same number of brackets on both sides : ' + original)
  		var dp = [];
  		this.parts.push({
  			binded: (bracket.length === 2),
  			func: compileExpression(splitted[index + 2], splitted[index + 4], dp),
  			dep: dp
  		});
  		this.dependenciesCount += dp.length;
  
  		index += 6;
  		part = splitted[index];
  	}
  }