Array lists are used again but they are used more effeciently this time around. jfortune now assigns probability to each file, gets a random number, checks that number against the probabilities assigned, and prints a quote. This way, larger files will have a higher probability for having a quote printed from them. You can tell it to consider all files equally when printing out a quote. The output mechanism is more modular now with one method being sent all the output. This method knows if the output is to be returned as a string or is to be printed out on the console.