add value to optionsThatWereChanged only if it actually changed; add some more tests