AVLNode is a dict now because  this way we fake pointers and assignment by reference