implement a full feature map-like container by using AVL tree