some crazy refactoring and interchanging text