added better quicksort