always override hashcode when you override equals, good practice