going with AVL tree balancing