Example 18 :: move the testing to a submethod
Example 18 :: let the user select sort method(s)