web ui refactory