reworked the way the user interface works