The list of words for each round is built before the exercise is ran to prevent list generation logic from interfering with application timing. The algorithm first loops and creates the word list. On every iteration the loop checks to see if the word is in the used word list. If it is not it the word is selected and the algorithm moves on to the next step. Once the word is selected the type of question is determined and created. A balancer array is used to make sure that all question conditions are even throughout the list. Once the question type is determined the question data is built. The data includes distractor words and display words for the word recall grid. Once the question is built it is added to the word list. The loop then continues until all words with questions have been generated. Once generation is complete the experiment begins using the generated list.