Refactored to use a collection for each word type