What are the pitfalls of using the power of two hash table sizes, instead of prime-numbered sizes, used traditionaly? Does using a prime number guarantees fixing the deficiencies of the naive hash functions (like i.e. xoring key bytes) or it is just a "shotgun debugging"? What simpler hash function would work with the power of two table sizes without clustering the keys too close?