OMG! can we remove all the null checks. I only see nulls everywhere. unit.equals(other.unit) should handle null checks.