adding in some type safety, starting to flesh out what is going on with string/substring
some type safety added to the NameDecoration class (have to rename that guy).
added operations on OriginalString.  should have extracted and tested separately.
changed the typing on the function we use.