reverted to the more memory-unfriendly (but safe) chained hash table