Improve hashcode
Improve test. Fix equals.