major ui refactoring