modified from hash code to md5 and put more test