began hash.c rewrite