Add a changed-object (to complement changed), and some rework some of the code with the new if-let/when-let macros.