Moved all of the unigram code into its own file to clean up the main project file