public string this[string var] { get { if (other == null || vars[var] != null) return (string)vars[var].Value; return other[var]; } set { if (vars[var] != null) vars[var].Value = value; else vars[var] = new Variable(var, value); } }