doing set changes before notifying observers