Halfway modifying AVL to generic AVL
Finish implementation of generic AVL