@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Person)) return false;

        Person person = (Person) o;

        if (address != null ? !address.equals(person.address) : person.address != null) return false;
        if (DateTimeComparator.getDateOnlyInstance().compare(dob, person.getDob()) != 0) return false;
        if (name != null ? !name.equals(person.name) : person.name != null) return false;

        return true;
    }