add hash_func