Some love

This pull request includes mostly internal refactors in order to make the application a little easier to follow.  The only outward change is that it returns the entire highlight and not just the text.