http://techiworks.com/overriding-equals-which-method-consider-override-too/