I think I've found a better way to handle the no-changes case.