@override operator []=(String key, value) { switch(key) { case "expression": this.expression = value as IExpression; break; default: wrapped[key] = value; } }