completed implementation of AVL tree