a lot of changes, mainly add a transparent window to show ui highlight