Currently config values are overwritten on a line-by-line basis. This is undesirable because if an error occurs on a later line, the parsing will stop at that point. The values up to that point would have already been overwritten. Instead, we should queue the changes until parsing is complete. This means the value change events would also be postponed until after parsing.