Co-authored-by: silverwind <[email protected]>
The old code is inconsistent and fragile, and the UI isn't right.