@Override
	public void run() {
		WordNode current_node;
		
		if((current_node = this.the_words.getHead()) == null)
			return;
		
		for(int i=0; i < this.the_words.getSize(); ++i){
			if(isFormable(current_node)){
				this.formable_words.add(current_node.copy());
				
				// Keep largest words next to each other
				if(current_node.getWord().length() >= this.formable_words.getHead().getWord().length())
					this.formable_words.updateHead(this.formable_words.getHead().getPrevious());
			}
			
			current_node = current_node.getNext();
		}
	}