Quicksort’s elegant, 1960, bare bone version is extended to address the diversity of settings in which it is applied. We show that a best version for referenced types has worse performance than a best version for native types, and the other way around. Hence two versions developed around 1992 that can handle arrays with referenced as well as with native type elements are suboptimal. Different design choices are required. Using more than one pivot has been prototyped without follow up. We present several 3-pivot versions. We show also the results of parallel versions. The performance of these versions relies on novel designs: guaranteeing O(NlogN) worst case complexity with the Musser-defense minimizing recursive invocations or the number of comparisons, a novel technique to obtain high quality pivots that also supports linear complexity for constant array segments, using two gap array layouts in addition to single gap layouts, using an alternative to pairwise swapping for moving elements around, using more hybridization for members with specialized functionality, and using more layers than the traditional two.