no need to support hash_func as a parameter actually. using md5 is sufficient