hashcode and equals methods added