re-adding files for comments

In general, subclassing the abstract class is a good idea, and basically it is well implemented. I'd generalize the builder methods and also the "rules" enforcement methods, so that each subclass (Adjective, Noun, Preposition, Pronoun, Verb) are really not needed other than as a type descriptor for a 'Word' subtype.