Split tool UI into widget classes