added hash.c - unfinished