words but needs refactoring