pretty much working avl tree
wip