commands allow setting new attributes or updating others, undo/redo tracks attribute changes too