https://medium.com/@marv-ike/some-facts-about-the-use-of-hash-code-in-object-oriented-programming-oop-languages-26ca5af09e20