fewer calls to hash()
real optimization