do not rely on hash key ordering