almost done with refactoring to manage upper case words