Tree struct

Change the flat hash table to a tree hash table for supporting list