ui refactor