removed redundant equals() and hashCode()