add hashmap__need futher improvement