are you sure you need to call `md5_func` and `sha1_func` here? It seems like you just want to pass them along.
(did this pass the untit tests?)