maybe  `Objects.equal` could make it easier to read