going back to hash_code (due to gcc 4.5)