now use ECMAScript Object instead of hash table