adding hascode and equals tests