Let's avoid being lazy, with proper hashcode definition