complete ui refactor