public VariableDefinition GetVariable(string varname)
{
if(string.IsNullOrEmpty(varname))
throw new ArgumentException("varname cannot be null or empty");
var var = Variables.FirstOrDefault(v => v.Name == varname);
if (var == null)
throw new KeyNotFoundException($"found no variable with name '{varname}'");
return var;
}