the first version
add hash.c
add share memory