add data mem based equals method
add new equals based hashCode ovverride
change comparison to equals method