Self Organizing Binary Search Trees