have a bug in this version, need to figure it out
fix the bug
fix hashtable's bug