WIP Deep refactoring of highlighting.

Might be a bit broken, switching now to testing before coninuing on that!