added equals and hashCode to some classes