hash merge