Practice implementation of AVL trees. You don't want to use this.