use ComparisonChain and Objects.equal