Added UserDictionaryMaker, and did a bit of refactoring.