a test case is done
test
looks fine now, all I need is just replace the original commands
use hash table