fundamental part of AVL added